logo
SQL2008_Administration

4.3.5 Роли приложений

Роль приложения (application role) используется для предоставления разрешений не пользователю, а приложению, из которого пользователь подключается к этому приложению.

Принцип работы роли приложения:

  1. Создать роль приложения и присвоить ей разрешения

  2. Пользователи открывают приложение и регистрируются в SQL Server

  3. Для включения роли приложение выполняет хранимую процедуру sp_setapprole (которая добавляется в приложение на этапе разработки).

  4. После включения роли приложения SQL Server интерпретирует пользователей как приложение, предоставляя им разрешения роли приложения.

  5. Для отключения роли приложения используется хранимая процедура sp_unsetapprole.

Преимущества использования роли приложения:

Недостаток роли приложения:

Создание роли приложения производится:

Предоставление прав этой роли осуществляется также как обычным пользователям или ролям базы данных.

Пример кода клиентского приложения:

-- Объявляем переменную appCookie. Она потребуется нам для возвращения к исходным правам

DECLARE @appCookie varbinary(8000);

-- Активизируем роль приложения

EXEC sp_setapprole 'AppRole1', 'password', 'none', true, @appCookie OUTPUT;

-- Проверяем:

SELECT USER_NAME();

-- Возвращаемся к исходным правам:

EXEC sp_unsetapprole @appCookie;

-- Проверяем еще раз:

SELECT USER_NAME();

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

Yandex.RTB R-A-252273-3
Yandex.RTB R-A-252273-4