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

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

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

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

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

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

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

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

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

  • гарантируется, что приложение будет обладать необходимыми правами в базе данных;
  • администратору достаточно создать учетную запись и соответствующего ей пользователя в базе данных, без необходимости настраивать требуемые разрешения в базе данных.

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

  • пароль роли приложения передается по сети открытым текстом (предусмотрена возможность использования функции ODBC Encrypt(), но реальной защиты она не обеспечивает). Как правило, этот пароль можно извлечь и просто из двоичного кода клиентского приложения.

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

  • из контейнера Имя_Базы_Данных a Security a Roles a Application Roles.
    Этой роли невозможно назначить пользователей, зато ей потребуется указать пароль, который будет использоваться при активизации.
  • С помощью команды Transact-SQL CREATE APPLICATION ROLE

CREATE APPLICATION ROLE AppRole1 WITH PASSWORD = ‘password’

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

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

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

DECLARE @appCookie varbinary(8000);

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

EXEC sp_setapprole ‘AppRole1’, ‘password’, ‘none’, true, @appCookie OUTPUT;

— Проверяем:

SELECT USER_NAME();

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

EXEC sp_unsetapprole @appCookie;

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

SELECT USER_NAME();

Смартфон в роли тренера: 3 приложения для занятий спортом на Android и iOS


Читать еще…

Понравилась статья? Поделиться с друзьями: