提问参考模版:
- nebula 版本:1.2
- 部署方式(分布式 / 单机 / Docker / DBaaS):分布式
- 硬件信息
- 磁盘( 推荐使用 SSD):SSD
- 问题的具体描述
nebula graph 1.2版本,通过CREATE USER创建了一个用户,使用这个用户不能创建space?
提问参考模版:
就是这么设计的 , 只允许 root 创建 space.
这么设计是有哪些考虑呢?感觉如果用户不能创建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 的关系是?
目前图数据库没有对外暴露,创建图谱是通过平台的,在平台做的鉴权。