跳转至
开发版采用单机部署,无需产品 License 文件。需要多机部署或大规模性能测试? 了解企业版

ALTER OWNER

ALTER OWNER将当前服务组中资源的所有权转移给另一用户。

前提条件

先连接 Graph 服务,在 GQL 客户端中执行命令。

  • 要更改资源对象的所有者,您必须是资源对象当前的所有者或具有该服务组的ADMIN角色的用户。
  • 新 Owner 必须已创建并加入当前服务组。更多信息,请参见创建用户和 INVITE USER。

语法

alter_owner_command
ALTER OWNER resource_object_type resource_object_reference TO USER user_name

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_name
graph_name
procedure_name(parameter_type, ...)
schema_reference/graph_type_name
schema_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。