本页介绍如何列出、查看、更新、授予权限以及删除 存储凭据。
Databricks 建议你仅授予对存储凭据的 CREATE EXTERNAL LOCATION 特权,而不授予其他特权。
本页介绍如何使用目录资源管理器和 SQL 命令管理存储凭据。 有关使用 Databricks CLI 或 Terraform 的信息,请参阅 Databricks Terraform 文档和什么是 Databricks CLI?。
列出存储凭据
若要查看元存储中所有存储凭据的列表,可以使用目录资源管理器或 SQL 命令。
目录资源管理器
- 在边栏中,单击 - 目录。 
- 在“快速访问”页中单击“外部数据”>按钮,然后转到“凭据”选项卡。 
- 按用途(存储或服务)对凭据进行排序。 
SQL
在笔记本或 Databricks SQL 编辑器中运行以下命令。
SHOW STORAGE CREDENTIALS;
查看存储凭据
若要查看存储凭据的属性,可以使用目录资源管理器或 SQL 命令。
目录资源管理器
- 在边栏中,单击 - 目录。 
- 在“快速访问”页中单击“外部数据”>按钮,然后转到“凭据”选项卡。 
- 单击存储凭据的名称以查看其属性。 
SQL
在笔记本或 Databricks SQL 编辑器中运行以下命令。 将 <credential-name> 替换为凭据的名称。
DESCRIBE STORAGE CREDENTIAL <credential-name>;
将存储凭据分配给特定工作区
默认情况下,存储凭据可从元存储中的所有工作区访问。 这意味着,如果用户已被授予该存储凭据的权限(例如 CREATE EXTERNAL LOCATION),则可以从附加到元存储的任何工作区行使该权限。 如果使用工作区来隔离用户数据访问,则可能需要仅允许从特定工作区访问存储凭据。 此功能称为工作区绑定或存储凭据隔离。
将存储凭据绑定到特定工作区的典型用例是云管理员使用生产云帐户凭据配置存储凭据的场景,并且你希望确保 Azure Databricks 用户仅在生成工作区中使用此凭据创建外部位置。
有关工作区绑定的详细信息,请参阅 限制对特定工作区的目录访问。
注释
在对存储凭据行使特权时引用工作区绑定。 例如,如果用户使用存储凭据创建外部位置,则仅当创建外部位置时,才会检查存储凭据上的工作区绑定。 创建外部位置后,它将独立于在存储凭据上配置的工作区绑定而运行。
将存储凭据绑定到一个或多个工作区
若要将存储凭据分配到特定的工作区,可以使用目录资源管理器或 Databricks CLI。
所需的权限:元存储管理员、存储凭据所有者或对存储凭据的  权限MANAGE。
注释
元存储管理员可以使用目录资源管理器查看元存储中的所有存储凭据,存储凭据所有者可以查看他们在元存储中拥有的所有存储凭据,无论存储凭据是否已分配到当前工作区。 未分配给工作区的存储凭据显示为灰色。
目录资源管理器
- 登录到链接到元存储的工作区。 
- 在边栏中,单击 - 目录。 
- 在“快速访问”页中单击“外部数据”>按钮,然后转到“凭据”选项卡。 
- 选择存储凭据,然后转到“工作区”选项卡。 
- 在“工作区”选项卡上,清除“所有工作区拥有访问权限”复选框。 - 如果存储凭据已绑定到一个或多个工作区,则此复选框已清除。 
- 单击“分配到工作区”,然后输入或查找要分配的工作区。 
若要撤销访问权限,请转到“工作区”选项卡,选择该工作区,然后单击“撤销”。 若要允许从所有工作区进行访问,请选中“所有工作区都具有访问权限”复选框。
CLI
有两个 Databricks CLI 命令组,以及将存储凭据分配给工作区所需的两个步骤。
在以下示例中,将 <profile-name> 替换为 Azure Databricks 身份验证配置文件的名称。 它应包括个人访问令牌的值,以及生成个人访问令牌的工作区的工作区实例名称和工作区 ID。 请参阅个人访问令牌身份验证(已弃用)。
- 使用 - storage-credentials命令组的- update命令将存储凭据的- isolation mode设置为- ISOLATED:- databricks storage-credentials update <my-storage-credential> \ --isolation-mode ISOLATED \ --profile <profile-name>- 对于附加到元存储的所有工作区,默认的 - isolation-mode设置为- OPEN。
- 使用 - workspace-bindings命令组的- update-bindings命令将工作区分配到存储凭据:- databricks workspace-bindings update-bindings storage-credential <my-storage-credential> \ --json '{ "add": [{"workspace_id": <workspace-id>}...], "remove": [{"workspace_id": <workspace-id>}...] }' --profile <profile-name>- 使用 - "add"和- "remove"属性添加或删除工作区绑定。- 注释 - 只读绑定 ( - BINDING_TYPE_READ_ONLY) 不适用于存储凭据。 因此,没有理由为存储凭据绑定设置- binding_type。
若要列出存储凭据的所有工作区分配,请使用 workspace-bindings 命令组的 get-bindings 命令:
databricks workspace-bindings get-bindings storage-credential <my-storage-credential> \
--profile <profile-name>
从工作区取消绑定存储凭据
              workspace-bindings中包含有关使用目录资源管理器或  CLI 命令组撤销工作区对存储凭据的访问权限的说明。
显示对存储凭据的授予
若要查看对存储凭据的授予,可以使用目录资源管理器或 SQL 命令。
目录资源管理器
- 在边栏中,单击 - 目录。 
- 在“快速访问”页中单击“外部数据”>按钮,然后转到“凭据”选项卡。 
- 单击存储凭据的名称。 
- 单击“权限”。 
SQL
若要显示存储凭据上的授权,请使用如下命令。 你可以选择筛选结果以只显示指定主体的授权。
SHOW GRANTS [<principal>] ON STORAGE CREDENTIAL <storage-credential-name>;
替换占位符值替:
- 
              <principal>:帐户级用户的电子邮件地址或要向其授予权限的帐户级组的名称。 如果组或用户名包含空格或@符号,请在其周围使用反勾(而不是撇号)。 例如,- 
              <storage-credential-name>:存储凭据的名称。
授予创建外部位置的权限
要授予使用存储凭据创建外部位置的权限,请完成以下步骤:
目录资源管理器
- 在边栏中,单击 - 目录。 
- 在“快速访问”页中单击“外部数据”>按钮,然后转到“凭据”选项卡。 
- 单击存储凭据的名称以打开详细信息页。 
- 单击“权限”。 
- 若要向用户或组授予权限,请选择每个标识,然后单击“授予”。 
- 若要撤销用户或组的权限,请选择每个标识,然后单击“撤销”。 
SQL
在笔记本或 SQL 查询编辑器中运行以下命令:
GRANT CREATE EXTERNAL LOCATION ON STORAGE CREDENTIAL <storage-credential-name> TO <principal>;
替换占位符值替:
- 
              <principal>:帐户级用户的电子邮件地址或要向其授予权限的帐户级组的名称。 如果组或用户名包含空格或@符号,请在其周围使用反勾(而不是撇号)。 例如,- 
              <storage-credential-name>:存储凭据的名称。
更改存储凭据的所有者
存储凭据的创建者是其初始所有者。 若要将所有者更改为其他帐户级别的用户或组,可使用目录资源管理器或 SQL 命令。
目录资源管理器
- 在边栏中,单击 - 目录。 
- 在“快速访问”页中单击“外部数据”>按钮,然后转到“凭据”选项卡。 
- 单击存储凭据的名称。 
- 单击“  Edit icon所有者”旁边的 。 Edit icon所有者”旁边的 。
- 键入以搜索主体并将其选中。 
- 单击“ 保存”。 
SQL
在笔记本或 Databricks SQL 编辑器中运行以下命令。 替换占位符值替:
- 
              <credential-name>:该凭据的名称。
- 
              <principal>:帐户级用户的电子邮件地址或帐户级组的名称。
ALTER STORAGE CREDENTIAL <credential-name> OWNER TO <principal>;
将存储凭据标记为只读
如果你希望用户对存储凭据管理的所有数据具有只读访问权限,则可以使用 Catalog Explorer 将存储凭据标记为只读。
将存储凭据设置为只读意味着使用该凭据配置的任何存储都是只读的。
创建存储凭据时,可以将它们标记为只读。
还可以使用 Catalog Explorer 在创建存储凭据后更改只读状态:
- 在目录资源管理器中,找到存储凭据,单击 - 对象行上的 kebab 菜单,然后选择“ 编辑”。 
- 在编辑对话框中,选择“只读”选项。 
重命名存储凭据
若要重命名存储凭据,可以使用目录资源管理器或 SQL 命令。
目录资源管理器
- 在边栏中,单击 - 目录。 
- 在“快速访问”页中单击“外部数据”>按钮,然后转到“凭据”选项卡。 
- 单击存储凭据的名称以打开编辑对话框。 
- 重命名存储凭据并保存。 
SQL
在笔记本或 Databricks SQL 编辑器中运行以下命令。 替换占位符值替:
- 
              <credential-name>:该凭据的名称。
- 
              <new-credential-name>:凭据的新名称。
ALTER STORAGE CREDENTIAL <credential-name> RENAME TO <new-credential-name>;
删除存储凭据
若要删除某个存储凭据,你必须是其所有者。 若要删除存储凭据,可以使用目录资源管理器或 SQL 命令。
目录资源管理器
- 在边栏中,单击 - 目录。 
- 在“快速访问”页中单击“外部数据”>按钮,然后转到“凭据”选项卡。 
- 单击存储凭据的名称以打开编辑对话框。 
- 单击“删除” 按钮。 
SQL
在笔记本或 Databricks SQL 编辑器中运行以下命令。 将 <credential-name> 替换为凭据的名称。 括号中的命令部分是可选的。 默认情况下,如果凭据由外部位置使用,则不会删除它。 将 <credential-name> 替换为凭据的名称。
如果凭据不存在,则 IF EXISTS 不返回错误。
DROP STORAGE CREDENTIAL [IF EXISTS] <credential-name>;