REVOKE¶
REVOKE撤销当前服务组中用户或角色的权限。
前提条件¶
先连接 Graph 服务,在 GQL 客户端中执行命令。
要撤销权限,您必须是该权限所涉及的资源对象的所有者或具有该服务组的ADMIN角色的用户。
限制条件¶
- 待撤销权限的角色不能是角色
ADMIN。 - 待撤销权限的资源对象不能是临时图。
- 不能撤销
/default_schema的USAGE。 - Schema Owner 不能撤销自己对该 Schema 的隐式
USAGE。
REVOKE只撤销命令中指定的授权来源。如果相同权限仍来自其他角色、直接授权、Owner 身份或上级资源权限,用户仍可执行相应操作。
具有ADMIN角色的用户始终拥有当前服务组中的全部权限。撤销直接授予该用户的普通权限不会缩小其实际访问能力。
语法¶
- revoke_privileges_command
revoke_privileges_command ::=
'REVOKE' action (',' action )* ('ON' resource_object_type resource_object_reference (',' resource_object_reference)* )? 'FROM' ( ('USER' user_name) | ( 'ROLE' role_name) )
参数¶
action¶
需要授予或撤销的操作。各类资源支持的操作见可以授予的权限。
如果是针对服务组或 Catalog 的操作,无需指定resource_object_type或resource_object_reference。
resource_object_type¶
目标资源类型,可选值为SCHEMA、GRAPH TYPE、GRAPH、NODE TYPE、EDGE TYPE、NODE PROPERTY、EDGE PROPERTY和PROCEDURE。每种操作适用的资源对象类型请参见权限参考。
更多信息,请参见资源对象。
resource_object_reference¶
用于定位目标资源的引用。可使用当前 Schema 中的名称,或带 Schema 路径的引用:
| 资源类型 | 当前 Schema 中的写法 | 包含 Schema 路径的写法 |
|---|---|---|
SCHEMA |
schema_reference |
schema_reference |
GRAPH TYPE和GRAPH |
graph_type_namegraph_name |
schema_reference/graph_type_nameschema_reference/graph_name |
PROCEDURE |
procedure_name(parameter_type, ...) |
`schema_reference/procedure_name`(parameter_type, ...) |
NODE TYPE和EDGE TYPE |
graph_name.node_type_namegraph_name.edge_type_name |
schema_reference/graph_name.node_type_nameschema_reference/graph_name.edge_type_name |
NODE PROPERTY和EDGE PROPERTY |
graph_name.node_type_name.node_property_namegraph_name.edge_type_name.edge_property_name |
schema_reference/graph_name.node_type_name.node_property_nameschema_reference/graph_name.edge_type_name.edge_property_name |
如果同名 UDP 存在多个签名,必须指定参数类型。例如:
REVOKE EXECUTE ON PROCEDURE `/default_schema/ufoo`(INT) FROM ROLE role1
SCHEMA对象始终使用schema_reference指定。- 其他对象位于当前 Schema 时可省略 Schema 路径;位于其他 Schema 时,需包含
schema_reference。设置和查看当前 Schema 见 SESSION SET SCHEMA 和 SHOW CURRENT_SCHEMA。 schema_reference可以是对应 Schema 所在绝对路径或相对路径。更多信息,请参见 CREATE SCHEMA。
user_name¶
被撤销权限的用户名。
role_name¶
被撤销权限的角色名。
示例¶
role1需已创建,user1需已加入服务组。角色创建方法见 CREATE ROLE。- 当前 Schema 示例使用示例数据集中的
movie图;先选择加载该数据集的 Schema。 - 使用
/my_schema路径的示例前,请在该 Schema 中准备对应对象,或替换为已有对象路径。
撤销 Schema 访问权¶
撤销用户的USAGE:
REVOKE USAGE ON SCHEMA /my_schema FROM USER user1
也可以撤销角色的USAGE:
REVOKE USAGE ON SCHEMA /my_schema FROM ROLE role1
撤销USAGE后,受影响的用户无法访问该 Schema,但 Schema 中对象的权限和 Owner 信息不会被删除。重新授予USAGE后,未发生变化的对象权限可继续使用。更多信息,请参见 Schema 访问控制。
撤销当前图的查询权限¶
REVOKE MATCH ON GRAPH movie FROM ROLE role1
撤销指定图的查询权限¶
REVOKE MATCH ON GRAPH /my_schema/movie FROM ROLE role1
撤销点类型的查询和写入权限¶
REVOKE MATCH, INSERT ON NODE TYPE movie.Actor FROM ROLE role1
撤销点属性的查询权限¶
REVOKE MATCH ON NODE PROPERTY movie.Actor.name FROM ROLE role1