主体

主体是元存储已知的用户、服务主体或组。 可以向主体授予特权,使其拥有安全对象

语法

 { `<user>@<domain-name>` |
   `<sp-application-id>` |
   group_name |
   USERS }

参数

  • <user>@<domain-name>

    单个用户。 由于 @ 字符,必须用反引号 (`) 来引用标识符。

  • <sp-application-id>

    服务主体,由其 applicationId 值指定。 由于 ID 中的破折号字符,必须用反引号 (`) 为标识符加上引号。

  • group_name

    一个标识符,用于指定一组用户或组。

  • USERS

    所有工作区级用户所属的根组。

  • ACOUNT USERS

    所有帐户级用户所属的根组。

工作区级主体和帐户级主体

Databricks Runtime 支持不同的主体集:工作区级别帐户级别

如果尝试向某个 securable_object授予特权,则在主体不适用于安全对象的情况下,将收到“找不到用户”错误。

工作区级主体

工作区级主体在每个工作区中进行管理。 它们适用于 hive_metastore 目录中定义的所有对象。 你还可以使用以下语句创建和管理工作区级别组:

帐户级主体

帐户级主体在帐户中是全局性的。 帐户级主体是在 SQL 空间之外进行管理的,并适用于 hive_metastore 目录之外的所有对象。

示例

-- Granting a privilege to the user alf@melmak.et
> GRANT SELECT ON TABLE t TO `alf@melmak.et`;

-- Granting a privilege to the service principal fab9e00e-ca35-11ec-9d64-0242ac120002
> GRANT SELECT ON TABLE t TO `fab9e00e-ca35-11ec-9d64-0242ac120002`;

-- Revoking a privilege from the general public group.
> REVOKE SELECT ON TABLE t FROM users;

-- Transfering owbership of an object to `some_group`
> ALTER SCHEMA some_schema OWNER TO some_group;