管理数据库安全角色
适用于:✅Azure 数据资源管理器
通过基于角色的访问控制模型授予主体对资源的访问权限,其中分配的安全角色决定了主体的资源访问权限。
在本文中,将学习如何使用管理命令查看现有安全角色,以及在数据库级别添加和删除与安全角色的主体关联。
权限
你必须至少具有数据库管理员权限才能运行这些命令。
注意
若要删除数据库,至少需要参与者 Azure Resource Manager (ARM) 权限。 若要分配 ARM 权限,请参阅使用 Azure 门户分配 Azure 角色。
数据库级安全角色
下表显示了可以在数据库级别分配的安全角色,并描述了为每个角色授予的权限。
角色 | 权限 |
---|---|
admins |
查看和修改数据库与数据库实体。 |
users |
查看数据库和创建新的数据库实体。 |
viewers |
查看未打开 RestrictedViewAccess 的数据库中的表。 |
unrestrictedviewers |
查看已打开 RestrictedViewAccess 的数据库中的表。 主体还必须拥有 admins 、viewers 或 users 权限。 |
ingestors |
在无法访问查询的情况下将数据引入数据库。 |
monitors |
查看架构、操作和权限等数据库元数据。 |
注意
无法仅为数据库中的某些表分配 viewer
角色。 有关如何向主体视图授予对表子集的访问权限的不同方法,请参阅管理表视图访问权限。
显示现有安全角色
在添加或删除主体之前,可以使用 .show
命令查看包含已在数据库上设置的所有主体和角色的表。
语法
要显示所有角色,请执行以下操作:
.show
database
DatabaseName principals
要显示角色,请执行以下操作:
.show
database
DatabaseName principal
roles
详细了解语法约定。
参数
客户 | 类型 | 必需 | 说明 |
---|---|---|---|
DatabaseName | string |
✔️ | 要列出其主体的数据库的名称。 |
示例
以下命令列出有权访问 Samples
数据库的所有安全主体。
.show database Samples principals
示例输出
角色 | PrincipalType | PrincipalDisplayName | PrincipalObjectId | PrincipalFQN |
---|---|---|---|---|
数据库示例管理员 | Microsoft Entra 用户 | Abbi Atkins | cd709aed-a26c-e3953dec735e | aaduser=abbiatkins@fabrikam.com |
在安全角色中添加和删除主体关联
本部分提供用于在安全角色中添加和删除主体的语法、参数和示例。
语法
Action database
DatabaseName Role (
Principal [,
Principal...] )
[skip-results
] [ Description ]
详细了解语法约定。
参数
客户 | 类型 | 必需 | 说明 |
---|---|---|---|
操作 | string |
✔️ | 命令 .add 、.drop 或 .set 。.add 添加指定的主体,.drop 删除指定的主体,.set 添加指定的主体并删除所有以前的主体。 |
DatabaseName | string |
✔️ | 要为其添加主体的数据库的名称。 |
角色 | string |
✔️ | 要分配给主体的角色。 对于数据库,角色可以是 admins 、users 、viewers 、unrestrictedviewers 、ingestors 或 monitors 。 |
主体 | string |
✔️ | 一个或多个主体或托管标识。 若要引用托管标识,请使用“应用程序”格式,并使用托管标识对象 ID 或托管标识客户端(应用程序)ID。 有关如何指定这些主体的指导,请参阅引用 Microsoft Entra 主体和组。 |
skip-results |
string |
如果提供,该命令将不会返回更新的数据库主体列表。 | |
描述 | string |
用于描述使用 .show 命令时显示的更改的文本。 |
注意
结合 none
(而不是主体列表)使用 .set
命令将删除指定的角色的所有主体。
示例
以下示例演示如何在同一命令中添加安全角色、删除安全角色以及添加和删除安全角色。
使用 .add 添加安全角色
以下示例将主体添加到 Samples
数据库上的 users
角色。
.add database Samples users ('aaduser=imikeoein@fabrikam.com')
以下示例将应用程序添加到 Samples
数据库上的 viewers
角色。
.add database Samples viewers ('aadapp=4c7e82bd-6adb-46c3-b413-fdd44834c69b;fabrikam.com')
使用 .drop 删除安全角色
以下示例从 Samples
数据库上的 admins
角色中删除组中的所有主体。
.drop database Samples admins ('aadGroup=SomeGroupEmail@fabrikam.com')
使用 .set 添加新安全角色和删除旧安全角色
以下示例删除现有的 viewers
,并添加提供的主体作为 Samples
数据库上的 viewers
。
.set database Samples viewers ('aaduser=imikeoein@fabrikam.com', 'aaduser=abbiatkins@fabrikam.com')
使用 .set 删除所有安全角色
以下命令删除 Samples
数据库上的所有现有 viewers
。
.set database Samples viewers none