管理数据库安全角色

适用于:✅Azure 数据资源管理器

通过基于角色的访问控制模型授予主体对资源的访问权限,其中分配的安全角色决定了主体的资源访问权限。

在本文中,将学习如何使用管理命令查看现有安全角色,以及在数据库级别添加和删除与安全角色的主体关联

Permissions

你必须至少具有数据库管理员权限才能运行这些命令。

Note

若要删除数据库,至少需要参与者 Azure Resource Manager (ARM) 权限。 若要分配 ARM 权限,请参阅使用 Azure 门户分配 Azure 角色

数据库级安全角色

下表显示了可以在数据库级别分配的安全角色,并描述了为每个角色授予的权限。

Role Permissions
admins 查看和修改数据库与数据库实体。
users 查看数据库和创建新的数据库实体。
viewers 查看未打开 RestrictedViewAccess 的数据库中的表。
unrestrictedviewers 查看已打开 RestrictedViewAccess 的数据库中的表。 主体还必须拥有 adminsviewersusers 权限。
ingestors 在无法访问查询的情况下将数据引入数据库。
monitors 查看架构、操作和权限等数据库元数据。

Note

无法仅为数据库中的某些表分配 viewer 角色。 有关如何向主体视图授予对表子集的访问权限的不同方法,请参阅管理表视图访问权限

显示现有安全角色

在添加或删除主体之前,可以使用 .show 命令查看包含已在数据库上设置的所有主体和角色的表。

Syntax

要显示所有角色,请执行以下操作:

.show database DatabaseName principals

要显示角色,请执行以下操作:

.show database DatabaseNameprincipalroles

详细了解语法约定

Important

  • 如果主体与用户位于同一租户中,则显示其完全限定名称(FQN)。

  • 如果主体位于与用户不同的租户中:

    • 显示名称不显示 FQN。
    • 显示名称指示主体来自不同租户。 格式为 [User/Group/Application] from AAD tenant [Tenant Id]
    • 若要添加标识信息,请在其租户中为主体分配角色,并使用 Description 参数添加标识详细信息。 输出 Description“备注 ”列中显示。

Parameters

Name 类型 Required Description
DatabaseName string ✔️ 要列出其主体的数据库的名称。

Example

以下命令列出有权访问 Samples 数据库的所有安全主体。

.show database Samples principals

Example output

Role PrincipalType PrincipalDisplayName PrincipalObjectId PrincipalFQN
数据库示例管理员 Microsoft Entra 用户 Abbi Atkins cd709aed-a26c-e3953dec735e aaduser=abbiatkins@fabrikam.com

在安全角色中添加和删除主体关联

本部分提供用于在安全角色中添加和删除主体的语法、参数和示例。

Syntax

Action DatabaseName Role database Principal [ Principal...] [(] [ Description ],)skip-results

详细了解语法约定

Parameters

Name 类型 Required Description
Action string ✔️ 命令 .add.drop.set
.add 添加指定的主体,.drop 删除指定的主体,.set 添加指定的主体并删除所有以前的主体。
DatabaseName string ✔️ 要为其添加主体的数据库的名称。
Role string ✔️ 要分配给主体的角色。 对于数据库,角色可以是 adminsusersviewersunrestrictedviewersingestorsmonitors
Principal string ✔️ 一个或多个主体或托管标识。 若要引用托管标识,请使用“应用程序”格式,并使用托管标识对象 ID 或托管标识客户端(应用程序)ID。 有关如何指定这些主体的指导,请参阅引用 Microsoft Entra 主体和组
skip-results string 如果提供,该命令将不会返回更新的数据库主体列表。
Description string 用于描述使用 .show 命令时显示的更改的文本。

Note

结合 .set(而不是主体列表)使用 none 命令将删除指定的角色的所有主体。

Examples

以下示例演示如何在同一命令中添加安全角色删除安全角色以及添加和删除安全角色

使用 .add 添加安全角色

以下示例将主体添加到 users 数据库上的 Samples 角色。

.add database Samples users ('aaduser=imikeoein@fabrikam.com')

以下示例将应用程序添加到 viewers 数据库上的 Samples 角色。

.add database Samples viewers ('aadapp=4c7e82bd-6adb-46c3-b413-fdd44834c69b;fabrikam.com')

使用 .drop 删除安全角色

以下示例从 admins 数据库上的 Samples 角色中删除组中的所有主体。

.drop database Samples admins ('aadGroup=SomeGroupEmail@fabrikam.com')

使用 .set 添加新安全角色和删除旧安全角色

以下示例删除现有的 viewers,并添加提供的主体作为 viewers 数据库上的 Samples

.set database Samples viewers ('aaduser=imikeoein@fabrikam.com', 'aaduser=abbiatkins@fabrikam.com')

使用 .set 删除所有安全角色

以下命令删除 viewers 数据库上的所有现有 Samples

.set database Samples viewers none