用户权限
用户权限
ArcGraph 的权限管理是基于 RBAC(Role-Based Access Control,基于角色的访问控制)方式进行扩展和优化来实现的。在 ArcGraph 中,用户权限管理由权限、角色、资源以及用户构成。
- 权限(Privilege)定义了用户对资源的访问权限类型。
- 资源(Resource)包括创建的 Graph,Vertex 以及 Edge 等。
- 角色(Role)是权限的集合,定义对资源操作权限的集合。
- 用户(User)通过角色来决定权限集合,从而决定自身对资源的访问边界。
注意:
- 用户权限管理是系统安全的基础,请务必谨慎对待。
- 当前,仅拥有 ADMIN 角色的用户具备执行用户、角色和权限管理操作的权限,详情请参考 角色 Role 章节。
权限 Privilege
ArcGraph 图数据库的权限设计如下图所示。其中,系统内置的超级管理员用户“ARCGRAPH”拥有“ADMIN”角色,具备对系统所有资源的所有操作权限。

详细介绍
| 权限 | 描述 | 支持语句 |
|---|---|---|
TRAVERSE | 允许拥有资源被发现(此处定义资源为 Graph,Vertex 以及 Edge 等)的权限。 | - 执行以下语句需所有图的 TRAVERSE 权限 SET GLOBAL...- 执行以下语句需所在图的 TRAVERSE 权限SHOW VERTEX INDEXES...、SHOW EDGE INDEXES...、SHOW VERTEXES...、SHOW EDGES...- 执行以下语句需 _SYSTEM 图的 TRAVERSE 权限 SHOW GRAPH PARTITION...、SHOW GRAPH PARTITION LEADER... |
READ | 允许拥有读取资源的权限。 | - 执行以下语句需所在图的 READ 权限SHOW CURRENT GRAPH...、SHOW GRAPHS...、DESC GRAPH...、SHOW VERTEXES...、DESC VERTEX...、SHOW EDGES...、DESC EDGE...、MATCH...、PROFILE...- 执行以下语句需 _SYSTEM 图的 READ 权限SHOW ROLE PRIVILEGES...、SHOW ROLES...、SHOW USERS...、SHOW USER ROLES...、SHOW CURRENT USER... |
CREATE | 允许拥有创建资源的权限。 | - 执行以下语句需所在图的 CREATE 权限CREATE GRAPH...、USE...、CREATE VERTEX...、CREATE EDGE...、CREATE TEMPORAL EDGE...- 执行以下语句需 _SYSTEM 图的 CREATE 权限CREATE USER...、ALTER USER...、CREATE ROLE... |
DELETE | 允许拥有删除资源的权限。 | - 执行以下语句需所在图的 DELETE 权限TRUNCATE GRAPH...、DROP GRAPH...、DROP VERTEX...、DROP EDGE...、DELETE...- 执行以下语句需 _SYSTEM 图的 DELETE 权限DROP ROLE... |
SET PROPERTY | 允许拥有在 Vertex 及 Edge 上设置属性的权限。 | - 执行以下语句需所在图的 SET PROPERTY 权限 RENAME GRAPH...、ALTER VERTEX...、ALTER EDGE...、 INSERT...、SET...- 执行以下语句需 _SYSTEM 图的 SET PROPERTY 权限GRANT ROLE...、REVOKE ROLE... |
ALL | 允许拥有所有权限。 | GRANT PRIVILEGES...、REVOKE PRIVILEGES...、ALTER CONFIG...、KILL SESSION...、ALTER SYSTEM...、GRANT PRIVILEGES...、REVOKE PRIVILEGES... 及其他 ArcGraph 支持的所有语句 |
说明:
自 ArcGraph v2.1.1 版本起对权限进行调整,删除了 MATCH、MERGE、 WRITE 等权限,以简化权限体系并提高安全性。
查看权限
在 ArcGraph 图数据库中支持使用 SHOW ROLE PRIVILEGES 及相关语句查看权限相关信息,详情请参见 SHOW PRIVILEGES 章节。
角色 Role
角色是 ArcGraph 图数据库中权限管理的核心概念,代表着一组相关权限的集合。根据实际情况可以将角色分配给用户,以实现精细化的权限控制。一个用户可以同时拥有多个角色,另外一个角色也可以被绑定到多个用户上。
系统默认有以下两种内置角色:
-
ADMIN 角色
ArcGraph 图数据库内置了“ADMIN”角色,该角色拥有对系统所有资源的所有操作权限。SHOW ROLE PRIVILEGES LIKE 'ADMIN';返回结果示例如下:
+-----------+----------------+-----------------+------------+-------------+-----------+---------------+
| role_name | privilege_type | privilege Level | graph_name | vertex_name | edge_name | property_name |
+===========+================+=================+============+=============+===========+===============+
| ADMIN | All | ALL | * | * | * | * |
+-----------+----------------+-----------------+------------+-------------+-----------+---------------+ -
用户默认角色(User Default Role)
针对用户自身创建的资源,用户需要具备所有(
ALL)的操作权限,并与其他用户相互隔离。因此自 ArcGraph v2.1.1 版本起,在创建新用户时,系统将自动为该用户生成与之一一对应的默认角色(命名为_DEFAULT_ROLE_<USER_NAME>,初始无权限),并自动绑定至该用户。当用户新建资源时(如
CREATE GRAPH ...),对应的权限集合(Privilege Package)将自动绑定至对应的用户默认角色上,无需进行额外的授权操作。为确保系统运行的稳定性和安全性,我们对默认角色设定了以下安全操作策略:
DROP ROLE:禁止删除用户默认角色。在特殊情况下,可使用FORCE选项强制执行,但请务必谨慎,避免对系统造成潜在风险。RENAME ROLE:禁止重命名用户默认角色,以维护角色名称的一致性和管理便捷性。CREATE ROLE