概述
一个角色聚合了多个权限和其他角色。合理设计和使用角色可以实现基于角色的访问控制。
在嬴图数据库中,角色也被称作策略。
显示角色
获取数据库中的所有角色:
SHOW ROLE
角色信息呈现在表格_policy
中,包含以下字段:
字段 |
描述 |
---|---|
name |
角色名称 |
graphPrivileges |
角色包含的图权限 |
systemPrivileges |
角色包含的系统权限 |
propertyPrivileges |
角色包含的属性权限 |
policies |
角色包含的其他角色 |
创建角色
使用语句CREATE ROLE
在数据库中创建角色。
创建名为sales
的角色:
CREATE ROLE sales
暂不支持为一个角色分配权限和角色。
重命名角色
使用语句ALTER ROLE
重命名角色。
将角色sales
重命名为manager
:
ALTER ROLE sales RENAME TO manager
授予角色权限和角色
使用语句GRANT
授予一个角色权限和角色。
系统权限
授予角色Tester
系统权限SHOW_POLICY
和ALTER_GRAPH
:
GRANT ["SHOW_POLICY", "ALTER_GRAPH"] TO ROLE Tester
授予角色sales
所有系统权限:
GRANT * TO ROLE sales
图权限
授予角色Tester
对图amz
的READ
和UPDATE
权限:
GRANT ["READ", "UPDATE"] ON amz TO ROLE Tester
授予角色sales
对所有图的图权限:
GRANT * ON * TO ROLE sales
属性权限
授予角色Tester
对当前图中点Person
的name
和age
属性的READ
和WRITE
权限:
GRANT ['READ','WRITE'] ON NODE Person (name, age) TO ROLE Tester
授予角色sales
对当前图中所有边属性的DENY
权限:
GRANT ["DENY"] ON EDGE * * TO ROLE sales
角色
授予角色Tester
一个manager
角色:
GRANT ROLE manager TO ROLE Tester
撤销角色的权限和角色
使用语句REVOKE
撤销一个角色的权限和角色。
系统权限
撤销角色Tester
的系统权限SHOW_POLICY
和ALTER_GRAPH
:
REVOKE ["SHOW_POLICY", "ALTER_GRAPH"] FROM ROLE Tester
撤销角色sales
的所有系统权限:
REVOKE * FROM ROLE sales
图权限
撤销角色Tester
对图amz
的READ
和UPDATE
权限:
REVOKE ["READ", "UPDATE"] ON amz FROM ROLE Tester
撤销角色sales
对所有图的图权限:
REVOKE * ON * FROM ROLE sales
属性权限
撤销角色Tester
对当前图中点Person
的name
和age
属性的READ
和WRITE
权限:
REVOKE ['READ','WRITE'] ON NODE Person (name, age) FROM ROLE Tester
撤销角色sales
对当前图中所有边属性的DENY
权限:
REVOKE ["DENY"] ON EDGE * * FROM ROLE sales
角色
撤销角色Tester
中的角色manager
:
REVOKE ROLE manager FROM ROLE Tester
删除角色
使用语句DROP ROLE
删除角色。
删除角色manager
:
DROP ROLE manager