Поделиться через


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

Роль приложения — это субъект базы данных, который позволяет приложению запускаться с собственными разрешениями, такими как пользователь. Роли приложения можно использовать для предоставления доступа к определенным данным только тем пользователям, которые подключаются через определенное приложение. В отличие от ролей базы данных, роли приложения не содержат элементов и неактивны по умолчанию. Роли приложения работают с обоими режимами проверки подлинности. Роли приложения включены с помощью sp_setapprole, для которого требуется пароль. Так как роли приложений являются субъектом уровня базы данных, они могут обращаться к другим базам данных только через разрешения, предоставленные в этих базах данных гостевым пользователям. Таким образом, любая база данных, в которой гость отключена, будет недоступна для ролей приложений в других базах данных.

В SQL Server роли приложений не могут получить доступ к метаданным уровня сервера, так как они не связаны с субъектом уровня сервера. Чтобы отключить это ограничение и разрешить ролям приложений доступ к метаданным уровня сервера, задайте глобальный флаг 4616. Дополнительные сведения см. в статьях "Флаги трассировки" (Transact-SQL) и DBCC TRACEON (Transact-SQL).

Подключение к роли приложения

Следующие шаги составляют процесс, с помощью которого роль приложения переключает контексты безопасности:

  1. Пользователь выполняет клиентское приложение.

  2. Клиентское приложение подключается к экземпляру SQL Server в качестве пользователя.

  3. Затем приложение выполняет хранимую процедуру sp_setapprole с паролем, известным только приложению.

  4. Если имя роли приложения и пароль действительны, роль приложения включена.

  5. На этом этапе соединение теряет полномочия пользователя и получает полномочия роли приложения.

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

В более ранних версиях SQL Server единственный способ восстановить исходные параметры безопасности после запуска роли приложения — отключиться и повторно подключиться к SQL Server. Начиная с SQL Server 2005 , sp_setapprole имеет параметр, который создает файл cookie. Файл cookie содержит сведения о контексте перед включением роли приложения. Файл cookie можно использовать sp_unsetapprole для возврата сеанса в исходный контекст. Сведения об этом новом параметре и примере см. в разделе sp_setapprole (Transact-SQL).

Это важно

Параметр шифрования ODBC не поддерживается SqlClient. При передаче конфиденциальной информации по сети используйте протокол SSL или IPsec для шифрования канала. Если необходимо сохранить учетные данные в клиентском приложении, зашифруйте учетные данные с помощью функций API шифрования. В SQL Server 2005 и более поздних версиях пароль параметра хранится в виде односторонного хэша.

Создайте роль приложения. Создайте роль приложения и CREATE APPLICATION ROLE (Transact-SQL)
Изменение роли приложения. ИЗМЕНИТЬ РОЛЬ ПРИЛОЖЕНИЯ (Transact-SQL)
Удалите роль приложения. УДАЛИТЬ РОЛЬ ПРИЛОЖЕНИЯ (Transact-SQL)
Использование роли в приложении sp_setapprole (Transact-SQL)

См. также

Обеспечение безопасности SQL Server