Управление ролями безопасности
Важно!
Перед изменением правил авторизации в кластерах Kusto ознакомьтесь со следующими статьями: Общие сведения об авторизации на основе ролейуправления доступом Kusto
В этой статье описываются команды управления, используемые для управления ролями безопасности.
Роли безопасности определяют, какие субъекты безопасности (пользователи и приложения) имеют разрешения на работу с защищенным ресурсом, таким как база данных или таблица, и какие операции разрешены. Например, субъекты, имеющие database viewer
роль безопасности для определенной базы данных, могут запрашивать и просматривать все сущности этой базы данных (за исключением таблиц с ограниченным доступом).
Роль безопасности может быть связана с субъектами безопасности или группами безопасности (которые могут иметь другие субъекты безопасности или другие группы безопасности). Когда субъект безопасности пытается выполнить операцию с защищенным ресурсом, система проверяет, связан ли субъект по крайней мере с одной ролью безопасности, которая предоставляет разрешения на выполнение этой операции с ресурсом. Это называется проверкой авторизации. Сбой проверки авторизации прерывает операцию.
Примечание
Чтобы изменить субъекты безопасности, необходимо быть администратором базы данных или администратором всех баз данных.
Команды управления ролями безопасности
Синтаксис
ГлаголSecurableObjectTypeSecurableObjectNameRole [(
ListOfPrincipals)
[Description]]
Аргументы
Команда указывает тип выполняемого действия:
.add
,.drop
.set
и.show
.Команда Описание .add
Добавляет один или несколько субъектов в роль. .drop
Удаляет один или несколько субъектов из роли. .set
Задает роль для определенного списка субъектов, удаляя все предыдущие (если таковые есть). .show
Показывает список субъектов и их ролей. SecurableObjectType — это тип объекта, роль которого указана.
SecurableObjectType Описание database
Указанная база данных table
Указанная таблица materialized-view
Указанное материализованное представление SecurableObjectName — это имя объекта.
Роль — это имя соответствующей роли.
Роль Описание admins
Управление защищаемым объектом, включая возможность просмотра, изменения и удаления объекта и всех вложенных объектов. users
Может просматривать защищаемый объект и создавать новые объекты под ним. viewers
Может просматривать защищаемый объект. unrestrictedviewers
Только на уровне базы данных предоставляет разрешение на admins
просмотр для илиviewers
users
для всех таблиц в базе данных, для которых включена политика ограниченного представления. Используйте эту роль в дополнение к ролямadmins
,viewers
илиusers
.ingestors
Только на уровне базы данных разрешает прием данных во все таблицы. monitors
В указанной области (Database или AllDatabases) разрешены операции представления метаданных (схемы, операции, permissiosn). ListOfPrincipals — это необязательный список идентификаторов субъектов безопасности с разделителями-запятыми (значения типа
string
).Description — это необязательное значение типа
string
, которое хранится вместе со связью для будущих целей аудита.
Команда .show
Команда .show
выводит список субъектов, заданных для защищаемого объекта. Для каждой роли, назначенной субъекту, возвращается строка.
Синтаксис
.show
SecurableObjectTypeSecurableObjectNameprincipals
Пример
Следующая команда управления выводит список всех субъектов безопасности, которые имеют некоторый доступ к таблице StormEvents
в базе данных:
.show table StormEvents principals
Ниже приведены возможные результаты этой команды:
Роль | PrincipalType | PrincipalDisplayName | PrincipalObjectId | PrincipalFQN |
---|---|---|---|---|
База данных Apsty Администратор | пользователь Azure AD | Марк Смит | cd709aed-a26c-e3953dec735e | aaduser=msmith@fabrikam.com |
Управление ролями безопасности базы данных
.set
database
Рольnone
DatabaseName [skip-results
]
.set
database
DatabaseNameRole(
Principal [,
Principal...] )
[skip-results
] [Description]
.add
database
DatabaseNameRole(
Principal [,
Principal...] )
[skip-results
] [Description]
.drop
database
DatabaseNameRole(
Principal [,
Principal...] )
[skip-results
] [Description]
Первая команда удаляет из роли все субъекты. Второй удаляет все субъекты из роли и задает новый набор субъектов. Третий добавляет новые субъекты в роль без удаления существующих. Последний удаляет указанные субъекты из ролей и сохраняет остальные.
Где:
DatabaseName — это имя базы данных, роль безопасности которой изменяется.
Роль :
admins
,ingestors
,monitors
,unrestrictedviewers
,users
илиviewers
.Субъект — это один или несколько субъектов. Сведения о том, как указать эти субъекты, см. в разделе Субъекты и поставщики удостоверений .
skip-results
, если он указан, запрашивает, чтобы команда не возвращала обновленный список субъектов базы данных.Описание — это текст, который будет связан с изменением и получен соответствующей
.show
командой.
Примеры
Добавьте роли безопасности:
// No need to specify AAD tenant for UPN, as Kusto performs the resolution by itself
.add database Test users ('aaduser=imikeoein@fabrikam.com') 'Test user (AAD)'
// AAD SG on 'fabrikam.com' tenant
.add database Test admins ('aadGroup=SGEmail@fabrikam.com')
// OPTIONAL: AAD App on another tenant - by tenant guid
.add database Test viewers ('aadapp=4c7e82bd-6adb-46c3-b413-fdd44834c69b;9752a91d-8e15-44e2-aa72-e9f8e12c3ec5') 'Test app on another tenant (AAD)'
Удаление ролей безопасности:
.drop database Test admins ('aadGroup=SGEmail@fabrikam.com')
Управление ролями безопасности таблиц
.set
table
TableNameRolenone
[skip-results
]
.set
table
TableNameRole(
Principal [,
Principal...] )
[skip-results
] [Description]
.add
table
TableNameRole(
Principal [,
Principal...] )
[skip-results
] [Description]
.drop
table
TableNameRole(
Principal [,
Principal...] )
[skip-results
] [Description]
Первая команда удаляет из роли все субъекты. Второй удаляет все субъекты из роли и задает новый набор субъектов. Третий добавляет новые субъекты в роль без удаления существующих. Последний удаляет указанные субъекты из ролей и сохраняет остальные.
Где:
TableName — это имя таблицы, роль безопасности которой изменяется.
Роль :
admins
илиingestors
.Субъект — это один или несколько субъектов. Сведения о том, как указать эти субъекты, см. в разделе Субъекты и поставщики удостоверений .
skip-results
, если он указан, запрашивает, чтобы команда не возвращала обновленный список субъектов таблицы.Описание — это текст, который будет связан с изменением и получен соответствующей
.show
командой.
Примеры
Добавьте роли безопасности:
// No need to specify AAD tenant for UPN, as Kusto performs the resolution by itself
.add table TestTable admins ('aaduser=imikeoein@fabrikam.com') 'Test user (AAD)'
// AAD SG on 'fabrikam.com' tenant
.add table TestTable ingestors ('aadGroup=SGEmail@fabrikam.com')
// OPTIONAL: AAD App on another tenant - by tenant guid
.add table TestTable ingestors ('aadapp=4c7e82bd-6adb-46c3-b413-fdd44834c69b;9752a91d-8e15-44e2-aa72-e9f8e12c3ec5') 'Test app on another tenant (AAD)'
Удаление ролей безопасности:
.drop table TestTable admins ('aaduser=imikeoein@fabrikam.com')
Управление ролями безопасности материализованного представления
.show
materialized-view
MaterializedViewNameprincipals
.set
materialized-view
MaterializedViewNameadmins
(
Основной,[
Основной...])
.add
materialized-view
MaterializedViewNameadmins
(
Основной,[
Основной...])
.drop
materialized-view
MaterializedViewNameadmins
(
Основной,[
Основной...])
Где:
- MaterializedViewName — это имя материализованного представления, роль безопасности которого изменяется.
- Субъект — это один или несколько субъектов. См. статью Субъекты и поставщики удостоверений.
Управление ролями безопасности функций
.set
function
FunctionNameRolenone
[skip-results
]
.set
function
FunctionNameRole(
Principal [,
Principal...] )
[skip-results
] [Description]
.add
function
FunctionNameRole(
Principal [,
Principal...] )
[skip-results
] [Description]
.drop
function
FunctionNameRole(
Principal [,
Principal...] )
[skip-results
] [Description]
Первая команда удаляет из роли все субъекты. Второй удаляет все субъекты из роли и задает новый набор субъектов. Третий добавляет новые субъекты в роль без удаления существующих. Последний удаляет указанные субъекты из ролей и сохраняет остальные.
Где:
FunctionName — это имя функции, роль безопасности которой изменяется.
Роль всегда
admin
имеет значение .Субъект — это один или несколько субъектов. Сведения о том, как указать эти субъекты, см. в разделе Субъекты и поставщики удостоверений .
skip-results
, если он указан, запрашивает, чтобы команда не возвращала обновленный список субъектов-функций.Описание — это текст, который будет связан с изменением и получен соответствующей
.show
командой.
Пример
.add function MyFunction admins ('aaduser=imike@fabrikam.com') 'This user should have access'