主体

适用于:勾选“是” Databricks SQL 勾选“是” Databricks Runtime

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

语法

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

任何包含特殊字符的对象名称(如连字符或短划线 (-))都必须用反引号 (` `) 引起来。 带下划线的对象名称 (_) 不需要使用反引号。 请参阅名称

参数

  • <user>@<domain-name>

    单个用户。 由于用户名中有 @ 字符,因此必须用反引号 (`) 对标识符进行转义。

  • <sp-application-id>

    服务主体,由其 applicationId 值指定。 由于 ID 中有短划线 (-) 字符,因此必须用反引号 (`) 对标识符进行转义。

  • group_name

    一个标识符,用于指定一组用户或组。 如果组名使用特殊字符(如短划线 (-)),则必须使用反引号 (`) 对标识符进行转义。

  • 用户

    工作区中的所有用户所属的根组。 不能向 Unity Catalog 中的安全对象授予 users 特权,因为它是工作区本地组

  • account users

    帐户中的所有用户所属的根组。 由于存在空白字符,必须使用反引号 (`) 对标识符进行转义。

工作区本地组和帐户组

Azure Databricks 有帐户组和工作区-本地组的概念,具有特殊行为:

  • 帐户组:帐户组可由标识联合工作区的帐户管理员和工作区管理员创建。 可向他们授予访问标识联合工作区的权限,以及针对 Unity Catalog 中的安全对象的特权。
  • 工作区本地组只能由工作区管理员创建。 这些组在工作区管理设置页和帐户控制台的工作区“权限”选项卡上被标识为“工作区本地”。 不能将工作区本地组分配给其他工作区,也不能向这些组授予针对 Unity Catalog 中的安全对象的特权。 系统组 usersadmins 为工作区本地组。

示例

-- 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 `account users`;

-- Transferring ownership of an object to `some-group`
> ALTER SCHEMA some_schema OWNER TO `some-group`;