Главная Обратная связь

Дисциплины:






Создание пользовательской роли



Для создания пользовательской роли можно воспользоваться:

· Графическим интерфейсом Management Studio - из контекстного меню для контейнера Имя_базы_Данныхà SecurityàRolesàDatabase Roles

· Командой CREATE ROLE CREATE ROLE DBRole1

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

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

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

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

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

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

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

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

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

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

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

· гарантируется, что приложение будет обладать необходимыми правами в базе данных;

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

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

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

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

· из контейнера Имя_Базы_Данных à Security à Roles à 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;

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





sdamzavas.net - 2020 год. Все права принадлежат их авторам! В случае нарушение авторского права, обращайтесь по форме обратной связи...