安全角色概述
适用于:✅Azure 数据资源管理器
通过基于角色的访问控制模型授予主体对资源的访问权限,其中分配的安全角色决定了主体的资源访问权限。
当某个主体尝试执行某个操作时,系统会执行授权检查,以确保该主体与至少一个授权执行该操作的安全角色相关联。 授权检查失败会中止该操作。
本文中列出的管理命令可用于管理主体及其在数据库、表、外部表、具体化视图和函数上的安全角色。
管理命令
下表描述了用于管理安全角色的命令。
命令 | 说明 |
---|---|
.show |
列出具有给定角色的主体。 |
.add |
将一个或多个主体添加到角色。 |
.drop |
从角色中删除一个或多个主体。 |
.set |
将角色设置为特定主体列表,并删除所有以前的主体。 |
安全角色
下表描述了为每个角色授予的访问级别,并演示了一项检查:是否可以在给定的对象类型中分配角色。
角色 | 权限 | 数据库 | 表 | 外部表 | 具体化视图 | 函数 |
---|---|---|---|---|---|---|
admins |
查看、修改和删除对象及子对象。 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
users |
查看对象和创建新的子对象。 | ✔️ | ||||
viewers |
查看未打开 RestrictedViewAccess 的对象。 | ✔️ | ||||
unrestrictedviewers |
查看已打开 RestrictedViewAccess 的对象。 主体还必须拥有 admins 、viewers 或 users 权限。 |
✔️ | ||||
ingestors |
将数据引入对象中,但没有查询访问权限。 | ✔️ | ✔️ | |||
monitors |
查看架构、操作和权限等元数据。 | ✔️ |
有关每个范围的安全角色的完整说明,请参阅 Kusto 基于角色的访问控制。
注意
无法仅为数据库中的某些表分配 viewer
角色。 有关如何向主体视图授予对表子集的访问权限的不同方法,请参阅管理表视图访问权限。
常见方案
显示主体角色
若要查看你在群集上的角色,请运行以下命令:
.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
提示
使用 where 运算符按特定主体或角色筛选结果。
修改角色分配
有关如何在数据库和表级别修改角色分配的详细信息,请参阅管理数据库安全角色和管理表安全角色。