安全角色概述

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

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

当某个主体尝试执行某个操作时,系统会执行授权检查,以确保该主体与至少一个授权执行该操作的安全角色相关联。 授权检查失败会中止该操作。

本文中列出的管理命令可用于管理主体及其在数据库、表、外部表、具体化视图和函数上的安全角色。

Note

三个 AllDatabasesAdmin群集级安全角色, AllDatabasesViewer不能 AllDatabasesMonitor 使用安全角色管理命令进行配置。

若要了解如何在 Azure 门户中配置它们,请参阅 “管理群集权限”。

Management commands

下表描述了用于管理安全角色的命令。

Command Description
.show 列出具有给定角色的主体。
.add 将一个或多个主体添加到角色。
.drop 从角色中删除一个或多个主体。
.set 将角色设置为特定主体列表,并删除所有以前的主体。

Security roles

下表描述了为每个角色授予的访问级别,并演示了一项检查:是否可以在给定的对象类型中分配角色。

Role Permissions Databases Tables External tables Materialized views Functions
admins 查看、修改和删除对象及子对象。 ✔️ ✔️ ✔️ ✔️ ✔️
users 查看对象和创建新的子对象。 ✔️
viewers 查看未打开 RestrictedViewAccess 的对象。 ✔️
unrestrictedviewers 查看已打开 RestrictedViewAccess 的对象。 主体还必须拥有 adminsviewersusers 权限。 ✔️
ingestors 将数据引入对象中,但没有查询访问权限。 ✔️ ✔️
monitors 查看架构、操作和权限等元数据。 ✔️

有关每个范围的安全角色的完整说明,请参阅 Kusto 基于角色的访问控制

Note

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

Common scenarios

显示主体角色

若要查看你在群集上的角色,请运行以下命令:

.show cluster principal roles

显示在资源上的角色

若要检查在特定资源上分配给你的角色,请在相关数据库或包含该资源的数据库中运行以下命令:

// For a database:
.show database DatabaseName principal roles

// For a table:
.show table TableName principal roles

// For an external table:
.show external table ExternalTableName principal roles

// For a function:
.show function FunctionName principal roles

// For a materialized view:
.show materialized-view MaterializedViewName principal roles

显示资源上所有主体的角色

若要查看分配给特定资源的所有主体的角色,请在相关数据库或包含该资源的数据库中运行以下命令:

// For a database:
.show database DatabaseName principals

// For a table:
.show table TableName principals

// For an external table:
.show external table ExternalTableName principals

// For a function:
.show function FunctionName principals

// For a materialized view:
.show materialized-view MaterializedViewName principals

Tip

使用 where 运算符按特定主体或角色筛选结果。

Important

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

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

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

修改角色分配

有关如何在数据库和表级别修改角色分配的详细信息,请参阅管理数据库安全角色管理表安全角色