ALTER OWNER¶
ALTER OWNER将当前服务组中资源的所有权转移给另一用户。
前提条件¶
先连接 Graph 服务,在 GQL 客户端中执行命令。
- 要更改资源对象的所有者,您必须是资源对象当前的所有者或具有该服务组的
ADMIN角色的用户。 - 新 Owner 必须已创建并加入当前服务组。更多信息,请参见创建用户和 INVITE USER。
语法¶
- alter_owner_command
alter_owner_command ::=
'ALTER' 'OWNER' resource_object_type resource_object_reference 'TO' 'USER' user_name
参数¶
resource_object_type¶
待更改所有者的资源对象的类型。支持的资源对象类型包括SCHEMA、GRAPH TYPE、GRAPH和PROCEDURE。
Note
位于路径/default_schema的默认 Schema 的所有者无法更改。更多信息,请参见 CREATE SCHEMA。
Schema Owner 发生变化时,新 Owner 隐式获得该 Schema 的USAGE。原 Owner 失去由 Schema Owner 身份提供的隐式访问权。此前直接或通过角色获得的USAGE仍然有效;如果没有此类授权,则必须获得USAGE才能继续访问该 Schema。更多信息,请参见 Schema 访问控制。
更多信息,请参见权限参考。
resource_object_reference¶
用于定位待转移资源的引用。可使用当前 Schema 中的名称,或带 Schema 路径的引用:
| 资源类型 | 当前 Schema 中的写法 | 包含 Schema 路径的写法 |
|---|---|---|
SCHEMA |
schema_reference |
schema_reference |
GRAPH TYPE、GRAPH和PROCEDURE |
graph_type_namegraph_nameprocedure_name(parameter_type, ...) |
schema_reference/graph_type_nameschema_reference/graph_name`schema_reference/procedure_name`(parameter_type, ...) |
SCHEMA对象始终使用schema_reference指定。- 其他对象位于当前 Schema 时可省略 Schema 路径;位于其他 Schema 时,需包含
schema_reference。设置和查看当前 Schema 见 SESSION SET SCHEMA 和 SHOW CURRENT_SCHEMA。 schema_reference可以是对应 Schema 所在绝对路径或相对路径。更多信息,请参见 CREATE SCHEMA。- 如果同名 UDP 存在多个签名,必须在 UDP 引用中指定参数类型。
user_name¶
资源对象的新所有者的用户名。
示例¶
以下示例分别执行。user1需已加入服务组;movie_type和movie示例使用/default_schema中的示例数据集,请先完成加载。
更改 Schema 的所有者¶
'''
CREATE SCHEMA IF NOT EXISTS /my_schema // 创建 Schema
'''
'''
ALTER OWNER SCHEMA /my_schema TO USER user1
'''
作为新的 Schema Owner,user1隐式获得/my_schema的访问权。原 Owner 失去由 Schema Owner 身份提供的隐式访问权,但此前直接或通过角色获得的USAGE仍然有效。
更改当前 Schema 中图类型的所有者¶
'''
SESSION SET SCHEMA /default_schema
'''
'''
ALTER OWNER GRAPH TYPE movie_type TO USER user1
'''
更改指定 Schema 中图类型的所有者¶
'''
// 创建 Schema
CREATE SCHEMA IF NOT EXISTS /my_schema
'''
'''
// 为当前会话设置 Schema
SESSION SET SCHEMA /my_schema
'''
'''
// 在指定 Schema 中创建图类型
CREATE GRAPH TYPE IF NOT EXISTS /my_schema/my_graph_type AS {}
'''
'''
// 更改指定 Schema 中图类型的所有者
ALTER OWNER GRAPH TYPE /my_schema/my_graph_type TO USER user1
'''
更改当前 Schema 中图的所有者¶
'''
SESSION SET SCHEMA /default_schema
'''
'''
ALTER OWNER GRAPH movie TO USER user1
'''
以具有ADMIN角色的用户执行SHOW OBJECTS FOR USER user1,确认资源出现在新 Owner 的列表中。也可以用user1登录后执行SHOW OBJECTS查看自己的资源。命令说明见 SHOW OBJECTS。