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

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

В SQL Server 2005 роли приложения не имеют доступ к метаданным уровня сервера, так как они не связаны с участником на уровне сервера. Чтобы отключить это ограничение и разрешить ролям приложения доступ к метаданным уровня сервера, установите глобальный флаг 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» может быть использован процедурой sp_unsetapprole для возврата сеанса в исходный контекст. Сведения об этом новом параметре и пример см. в разделе sp_setapprole (Transact-SQL).

ms190998.security(ru-ru,SQL.90).gifПримечание безопасности.
Параметр шифрование Microsoft ODBC не поддерживается поставщиком SqlClient. При передаче секретных сведений по сети следует пользоваться протоколом SSL или IPSec для шифрования канала. Если необходимо сохранить учетные данные в клиентском приложении, следует зашифровать их при помощи функций API-интерфейса шифрования. В SQL Server 2005 аргумент password хранится в виде одностороннего хэша.

См. также

Основные понятия

Основные сведения о контекстном переключении

Другие ресурсы

sp_setapprole (Transact-SQL)
CREATE APPLICATION ROLE (Transact-SQL)

Справка и поддержка

Получение помощи по SQL Server 2005