数据访问控制
本文介绍数据对象所有者如何管理对数据的访问。
有关如何启用数据访问的一般概述,请参阅 Databricks SQL 安全模型和数据访问概述。
重要
- 即使在 Databricks 数据科学和工程工作区中未启用表访问控制,数据访问控制在 Databricks SQL 中也始终处于启用状态。 必须先使用数据访问命令授予用户访问权限,然后用户才能访问任何数据库、表和视图。
- 如果在 Databricks 数据科学和工程工作区中启用了表访问控制,并且已在工作区中指定了 ACLS(授予和拒绝特权),则在 Databricks SQL 中将遵循这些 ACL。
可以使用数据资源管理器或通过在 SQL 编辑器中运行安全命令来管理所有权和权限。
注意
你无法管理 samples 目录中架构或表的所有权或权限。 此目录以只读方式提供给所有工作区中的用户。
在数据资源管理器中管理所有权和权限
管理数据对象所有权
必须是 Azure Databricks 管理员才能查看和管理数据对象所有权。
如果你没有查看所有者的权限,则“所有者”字段会显示
。
如果数据对象没有所有者,则“所有者”字段会显示
。
编辑数据库所有权
- 显示数据库。
- 选择数据库。
- 在“所有者”字段中,单击
。 - 在“设置所有者”对话框中,单击
,然后选择所有者。
编辑表所有权
管理数据对象权限
必须是 Azure Databricks 管理员或数据对象所有者才能查看和管理数据对象权限。
管理数据库权限
- 显示数据库。
- 选择数据库。
- 单击“权限”选项卡。
- 授予或撤销权限。
- 授予
- 单击“授予”。
- (可选)键入字符串以筛选主体并选择主体。
- 选中要授予的权限旁的复选框。
- 单击“确定”。
- 撤销
- 选中主体旁的复选框。
- 单击“撤销”。
- 授予
管理表权限
- 显示数据库。
- 选择表。
- 单击“权限”选项卡。
- 授予或撤销权限。
- 授予
- 单击“授予”。
- (可选)键入字符串以筛选主体并选择主体。
- 选中要授予的权限旁的复选框。
- 单击“确定”。
- 撤销
- 选中主体旁的复选框。
- 单击“撤销”。
- 授予
安全命令
数据对象所有者应用 SQL GRANT、DENY、REVOKE 和 SHOW GRANTS 命令,管理GRANT对数据对象的访问权限。 有关命令参考,请参阅安全语句。
若要运行 SHOW GRANTS [<user>] <object>,必须执行以下操作之一:
- Databricks SQL 管理员或
<object>的所有者。 [<user>]中指定的用户。
有关使用这些命令的要求和数据治理模型的详细说明,请参阅数据对象特权。
示例
若要允许用户 user@example.com 访问 default 数据库中的所有表,请调用以下命令:
REVOKE ALL PRIVILEGES ON DATABASE default FROM `user@example.com`;
GRANT USAGE, SELECT, READ_METADATA ON DATABASE default TO `user@example.com`;
SHOW GRANTS `user@example.com` ON DATABASE default;
+------------------+---------------+------------+-----------+
| principal | ActionType | ObjectType | ObjectKey |
+------------------+---------------+------------+-----------+
| user@example.com | READ_METADATA | DATABASE | default |
+------------------+---------------+------------+-----------+
| user@example.com | SELECT | DATABASE | default |
+------------------+---------------+------------+-----------+
| user@example.com | USAGE | DATABASE | default |
+------------------+---------------+------------+-----------+
在 SQL 编辑器中运行这些命令时,你应该看到:
