数据访问控制

本文介绍数据对象所有者如何管理对数据的访问。

有关如何启用数据访问的一般概述,请参阅 Databricks SQL 安全模型和数据访问概述

重要

  • 即使在 Databricks 数据科学和工程工作区中未启用表访问控制,数据访问控制在 Databricks SQL 中也始终处于启用状态。 必须先使用数据访问命令授予用户访问权限,然后用户才能访问任何数据库、表和视图。
  • 如果在 Databricks 数据科学和工程工作区中启用了表访问控制,并且已在工作区中指定了 ACLS(授予和拒绝特权),则在 Databricks SQL 中将遵循这些 ACL。

可以使用数据资源管理器或通过在 SQL 编辑器中运行安全命令来管理所有权和权限。

注意

你无法管理 samples 目录中架构或表的所有权或权限。 此目录以只读方式提供给所有工作区中的用户。

在数据资源管理器中管理所有权和权限

管理数据对象所有权

必须是 Azure Databricks 管理员才能查看和管理数据对象所有权。

如果你没有查看所有者的权限,则“所有者”字段会显示 Obscured database owner

如果数据对象没有所有者,则“所有者”字段会显示 No object owner

编辑数据库所有权

  1. 显示数据库
  2. 选择数据库。
  3. 在“所有者”字段中,单击 Edit Owner Icon
  4. 在“设置所有者”对话框中,单击 Down Arrow Icon,然后选择所有者。

编辑表所有权

  1. 显示数据库
  2. 选择表
  3. 在“所有者”字段中,单击 Edit Owner Icon
  4. 在“设置 database-name.table-name> 的所有者”对话框中,单击 >,然后选择一个所有者。

管理数据对象权限

必须是 Azure Databricks 管理员或数据对象所有者才能查看和管理数据对象权限。

管理数据库权限

  1. 显示数据库
  2. 选择数据库。
  3. 单击“权限”选项卡。
  4. 授予或撤销权限。
    • 授予
      1. 单击“授予”
      2. (可选)键入字符串以筛选主体并选择主体。
      3. 选中要授予的权限旁的复选框。
      4. 单击“确定”。
    • 撤销
      1. 选中主体旁的复选框。
      2. 单击“撤销”。

管理表权限

  1. 显示数据库
  2. 选择表
  3. 单击“权限”选项卡。
  4. 授予或撤销权限。
    • 授予
      1. 单击“授予”
      2. (可选)键入字符串以筛选主体并选择主体。
      3. 选中要授予的权限旁的复选框。
      4. 单击“确定”。
    • 撤销
      1. 选中主体旁的复选框。
      2. 单击“撤销”。

安全命令

数据对象所有者应用 SQL GRANTDENYREVOKESHOW 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 编辑器中运行这些命令时,你应该看到:

Show grants