跳转至

内置角色权限

所谓角色,就是一组相关权限的集合。用户可以把角色分配给创建的用户,从而实现访问控制。

内置角色

NebulaGraph内置了多种角色,说明如下:

  • God

    • 初始最高权限角色,拥有所有操作的权限。类似于 Linux 中的root和 Windows 中的administrator
    • Meta 服务初始化时,会自动创建 God 角色用户root,密码为nebula

      注意

      请及时修改root用户的密码,保证数据安全。

    • nebula-graphd.conf文件中(默认目录为/usr/local/nebula/etc/),当--enable_authorizetrue时:

      • 一个集群只能有一个 God 角色用户,该用户可以管理集群内所有图空间。
      • 不支持手动授权 God 角色,只能使用默认 God 角色用户root
  • Admin

    • 对权限内的图空间拥有 Schema 和 data 的读写权限。
    • 可以将权限内的图空间授权给其他用户。

      注意

      只能授权低于 ADMIN 级别的角色给其他用户。

  • DBA

    • 对权限内的图空间拥有 Schema 和 data 的读写权限。
    • 无法将权限内的图空间授权给其他用户。
  • User

    • 对权限内的图空间拥有 Schema 的只读权限。
    • 对权限内的图空间拥有 data 的读写权限。
  • Guest

    • 对权限内的图空间拥有 Schema 和 data 的只读权限。

Note

  • 不支持自行创建角色,只能使用默认的内置角色。
  • 一个用户在一个图空间内只能拥有一个角色权限。授权用户请参见用户管理

角色权限

各角色的执行权限如下。

权限 God Admin DBA User Guest Basic(企业版) 相关语句
Read space Y Y Y Y Y Y USEDESCRIBE SPACE
Read schema Y Y Y Y Y Y DESCRIBE TAGDESCRIBE EDGEDESCRIBE TAG INDEXDESCRIBE EDGE INDEX
Write schema Y Y Y CREATE TAGALTER TAGCREATE EDGEALTER EDGEDROP TAGDELETE TAGDROP EDGECREATE TAG INDEXCREATE EDGE INDEXDROP TAG INDEXDROP EDGE INDEX
Write user Y CREATE USERDROP USERALTER USER
Write role Y Y GRANTREVOKE
Read data Y Y Y Y Y C GOSETPIPEMATCHASSIGNMENTLOOKUPYIELDORDER BYFETCH VERTICESFindFETCH EDGESFIND PATHLIMITGROUP BYRETURN
Write data Y Y Y Y C INSERT VERTEXUPDATE VERTEXINSERT EDGEUPDATE EDGEDELETE VERTEXDELETE EDGESDELETE TAG
Show operations Y Y Y Y Y Y SHOWCHANGE PASSWORD
Job Y Y Y Y SUBMIT JOB COMPACTSUBMIT JOB FLUSHSUBMIT JOB STATSSTOP JOBRECOVER JOBBUILD TAG INDEXBUILD EDGE INDEXINGESTDOWNLOAD
Write space Y CREATE SPACEDROP SPACECREATE SNAPSHOTDROP SNAPSHOTBALANCECONFIG

Enterpriseonly

当前仅企业版支持基于 Basic 角色的细粒度(Tag/Edge type 级别)权限管理。

Caution

Show operations 为特殊操作,只会在自身权限内执行。例如SHOW SPACES,每个角色都可以执行,但是只会返回自身权限内的图空间。 只有 God 角色可以执行SHOW USERSSHOW SNAPSHOTS语句。


最后更新: January 31, 2024