nebula graph 1.2版本,通过CREATE USER创建了一个用户,使用这个用户不能创建space?

提问参考模版:

  • nebula 版本:1.2
  • 部署方式(分布式 / 单机 / Docker / DBaaS):分布式
  • 硬件信息
    • 磁盘( 推荐使用 SSD):SSD
  • 问题的具体描述
    nebula graph 1.2版本,通过CREATE USER创建了一个用户,使用这个用户不能创建space?

就是这么设计的 :grinning:, 只允许 root 创建 space.

https://docs.nebula-graph.com.cn/manual-CN/3.build-develop-and-administration/4.account-management-statements/built-in-roles/

这么设计是有哪些考虑呢?感觉如果用户不能创建space,user好像没啥用,不能实现多租户模式。这个2.0版本有升级吗?

user 用来做权限的隔离, 比如 user A 访问 space B这种. 为什么跟多租户冲突呢?

假设我搭建一个集群,要租给多个用户使用,每个用户有一个用户名和密码,可是user没有创建space的权限,那用户怎么用呢?用户A有自己的图谱数据,用户B也有自己的图谱数据,可是他们的数据都导不进去,怎么用呢?
另一方面,假设user A要创建spaceA ,user B也要创建spaceA,现在是实现不了的,因为名称是冲突了。

像mysql那种方式不是很好吗?每个用户可以创建自己的库和表。

嗯, 明白你意思. 感谢反馈, 我们会讨论下.

另外其实您的问题 1 还是有办法弄得, 就是由 root 创建 space, 然后 grant user A 使用这个 space 的就可以了.

问题 2 确实暂时没办法, 当然也可以说, 既然是由 root 来创建, 那么创建 space 的时候可以直接创建成 user_a_space_a

“另外其实您的问题 1 还是有办法弄得, 就是由 root 创建 space, 然后 grant user A 使用这个 space 的就可以了.”
对于上面的解决办法,我们的场景也是解决不了的,我们公司内部想建一个图数据库平台,给多个部门使用并实现数据隔离,每个部门来申请然后平台给每个部门一个账号,这种情况下不可能给使用者root权限的,因为root权限是可以访问其他部门的数据,但是如果不给root权限用户又不能创建space不能导入数据。这样是实现不了多租户的。
所以我们的需求是像mysql那样,user可以创建库表,而且对于自己创建的库表有所有的操作权限。希望采纳,谢谢。

嗯…我是想说, 所有的 space 可以(且只可以)由 IT 部门来创建,
那比如我是财务的, 我要 create space, 那我就向 IT 提工单就好了.
这样按我理解是满足多租户的,
只是多了一个提工单的环节.

您的意思主要是,
等于说 user 有一块自己的空间.
可以想怎么玩就怎么玩是吧. (有点 os 虚拟化的感觉).

对对,就是这个意思。

请问下您,您的多租户是怎么做的呀?跟 space 的关系是?

目前图数据库没有对外暴露,创建图谱是通过平台的,在平台做的鉴权。