主体

适用于:Databricks SQL check marked yes Databricks Runtime

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

语法

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

参数

  • <user>@<domain-name>

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

  • <sp-application-id>

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

  • group_name

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

  • users

    工作区中的所有用户所属的根组。 不能向 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;