主体 (Databricks SQL)
主体是元存储已知的用户、服务主体或组。 可以向主体授予特权,使其拥有安全对象。
语法
{ `<user>@<domain-name>` |
`<sp-application-id>` |
group_name |
USERS }
参数
<user>@<domain-name>单个用户。 由于 @ 字符,必须用反引号 (`) 来引用标识符。
<sp-application-id>服务主体,由其
applicationId值指定。 由于 ID 中的破折号字符,必须用反引号 (`) 为标识符加上引号。group_name
一个标识符,用于指定一组用户或组。
USERS所有工作区级用户所属的根组。
ACOUNT USERS所有帐户级用户所属的根组。
工作区和帐户级别主体
Databricks SQL 支持不同的主体集:工作区级别和帐户级别。
如果尝试向某个 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;