Управление ролями безопасности

Важно!

Прежде чем изменять правила авторизации в кластерах Kusto, прочитайте следующие сведения: обзор управления доступом Kusto
на основе роли .

В этой статье описываются управляющие команды, используемые для управления ролями безопасности. Роли безопасности определяют, какие субъекты безопасности (пользователи и приложения) имеют разрешения на работу с защищенным ресурсом, таким как база данных или таблица, и какие операции разрешены. Например, участники, имеющие database viewer роль безопасности для конкретной базы данных, могут запрашивать и просматривать все сущности этой базы данных (за исключением таблиц с ограниченным доступом).

Роль безопасности может быть связана с субъектами безопасности или группами безопасности (у которых могут быть другие субъекты безопасности или другие группы безопасности). Когда участник безопасности пытается выполнить операцию с защищенным ресурсом, система проверяет, что участник связан по крайней мере с одной ролью безопасности, которая предоставляет разрешения на выполнение этой операции с ресурсом. Это называется проверкой авторизации. Если не выполнить проверку авторизации, операция будет прервана.

Команды управления ролями безопасности

Синтаксис

Команда секураблеобжекттипе секураблеобжектнаме Role [ ( листофпринЦипалс ) [Описание]]

Аргументы

  • Команда указывает тип выполняемого действия: .show ,, и .add .drop .set .

    Команда Описание
    .add Добавляет в роль один или несколько участников.
    .drop Удаляет из роли один или несколько участников.
    .set Задает роль для конкретного списка участников, удаляя все предыдущие (если они есть).
  • Секураблеобжекттипе — это тип объекта, роль которого указана.

    секураблеобжекттипе Описание
    database Указанная база данных
    table Указанная таблица
    materialized-view Указанное материализованные представление
  • Секураблеобжектнаме — имя объекта.

  • Role — это имя соответствующей роли.

    Роль Описание
    admins Управлять защищаемым объектом, включая возможность просмотра, изменения и удаления объекта и всех его подобъектов.
    users Может просматривать защищаемый объект и создавать новые объекты под ним.
    viewers Может просматривать защищаемый объект.
    unrestrictedviewers Только на уровне базы данных, позволяет просматривать ограниченные таблицы (которые не предоставляются "нормальным" viewers и users ).
    ingestors Только на уровне базы данных разрешите прием данных во всех таблицах.
    monitors
  • ЛистофпринЦипалс — это необязательный, разделенный запятыми список идентификаторов субъектов безопасности (значений типа string ).

  • Description — это необязательное значение типа string , которое хранится вместе с Ассоциацией для будущих целей аудита.

. отобразить команду

.showКоманда выводит список участников, заданных для защищаемого объекта. Для каждой роли, назначенной участнику, возвращается строка.

Синтаксис

.showСекураблеобжекттипе секураблеобжектнамеprincipals

Пример

Следующая команда управления выводит список всех субъектов безопасности, имеющих некоторый доступ к таблице StormEvents в базе данных:

.show table StormEvents principals

Ниже приведены потенциальные результаты этой команды.

Роль PrincipalType PrincipalDisplayName принЦипалобжектид принЦипалфкн
Администратор Апсти базы данных Пользователь Azure AD Марк Смит cd709aed-a26c-e3953dec735e аадусер =msmith@fabrikam.com

Управление ролями безопасности базы данных

.set``database Имя_базы_данных , роль none [ skip-results ]

.set``database DatabaseName - ( субъект роли [ , субъект...] ) [ skip-results ] [Описание]

.add``database DatabaseName - ( субъект роли [ , субъект...] ) [ skip-results ] [Описание]

.drop``database DatabaseName - ( субъект роли [ , субъект...] ) [ skip-results ] [Описание]

Первая команда удаляет все субъекты из роли. Второй удаляет все субъекты из роли и задает новый набор участников. Третья добавляет новых участников к роли без удаления существующих участников. Последний удаляет указанные участники из ролей и сохраняет другие.

Где:

  • DatabaseName — это имя базы данных, роль безопасности которой изменяется.

  • Роль : admins , ingestors , monitors , unrestrictedviewers , users или viewers .

  • Участник — это один или несколько участников. Сведения об указании этих участников см. в разделе субъекты и поставщики удостоверений .

  • skip-results, если он указан, запрашивает, чтобы команда не возвращала обновленный список участников базы данных.

  • Описание, если оно предоставлено, — это текст, который будет связан с изменением и получен соответствующей .show командой.

Управление ролями безопасности таблиц

.set``table TableName , роль none [ skip-results ]

.set``table TableName ( , субъект роли [ , субъект...] ) [ skip-results ] [Описание]

.add``table TableName ( , субъект роли [ , субъект...] ) [ skip-results ] [Описание]

.drop``table TableName ( , субъект роли [ , субъект...] ) [ skip-results ] [Описание]

Первая команда удаляет все субъекты из роли. Второй удаляет все субъекты из роли и задает новый набор участников. Третья добавляет новых участников к роли без удаления существующих участников. Последний удаляет указанные участники из ролей и сохраняет другие.

Где:

  • TableName — это имя таблицы, роль безопасности которой изменяется.

  • Роль : admins или ingestors .

  • Участник — это один или несколько участников. Сведения об указании этих участников см. в разделе субъекты и поставщики удостоверений .

  • 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=SGDisplayName;fabrikam.com') 'Test group @fabrikam.com (AAD)'

// 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)'

Управление материализованными представлениями безопасности

.show``materialized-view Материализедвиевнамеprincipals

.set``materialized-view admins Материализедвиевнаме ( Основной сервер ,[ Субъект...])

.add``materialized-view admins Материализедвиевнаме ( Основной сервер ,[ Субъект...])

.drop``materialized-view admins Материализедвиевнаме ( Основной сервер ,[ Субъект...])

Где:

  • Материализедвиевнаме — имя материализованных представлений, роль безопасности которой изменяется.
  • Участник — это один или несколько участников. См. раздел субъекты и поставщики удостоверений .

Управление ролями безопасности функций

.set``function FunctionName , роль none [ skip-results ]

.set``function FunctionName - ( участник роли [ , субъект...] ) [ skip-results ] [Описание]

.add``function FunctionName - ( участник роли [ , субъект...] ) [ skip-results ] [Описание]

.drop``function FunctionName - ( участник роли [ , субъект...] ) [ skip-results ] [Описание]

Первая команда удаляет все субъекты из роли. Второй удаляет все субъекты из роли и задает новый набор участников. Третья добавляет новых участников к роли без удаления существующих участников. Последний удаляет указанные участники из ролей и сохраняет другие.

Где:

  • FunctionName — имя функции, роль безопасности которой изменяется.

  • Роль всегда admin .

  • Участник — это один или несколько участников. Сведения об указании этих участников см. в разделе субъекты и поставщики удостоверений .

  • skip-results, если он указан, запрашивает, чтобы команда не возвращала обновленный список субъектов-функций.

  • Описание, если оно предоставлено, — это текст, который будет связан с изменением и получен соответствующей .show командой.

Пример

.add function MyFunction admins ('aaduser=imike@fabrikam.com') 'This user should have access'