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


sp_addapprole (Transact-SQL)

Добавляет роль приложения к текущей базе данных.

ms176096.note(ru-ru,SQL.90).gifВажно!
В будущей версии Microsoft SQL Server эта возможность будет удалена. Избегайте использования этой возможности в новых разработках и запланируйте изменение существующих приложений, в которых она применяется. Вместо этого используйте CREATE APPLICATION ROLE.

Значок ссылки на разделСоглашения о синтаксисе в Transact-SQL

Синтаксис

sp_addapprole [ @rolename = ] 'role' , [ @password = ] 'password'

Аргументы

  • [ @rolename = ] 'role'
    Имя новой роли приложения. Аргумент role имеет тип sysname и не имеет значения по умолчанию. Аргумент role должен быть правильным идентификатором и не может уже существовать в текущей базе данных.

    Имена ролей приложения могут содержать от 1 до 128 символов, включая любые буквы, специальные символы и цифры. Имя роли не может содержать символ обратной косой черты (\), не может иметь значение NULL или быть пустой строкой ('').

  • [ @password = ] 'password'
    Пароль требуется для активизации роли приложения. Аргумент password имеет тип sysname и не имеет значения по умолчанию. Аргумент password не может быть NULL.

Значения кодов возврата

0 (успешное завершение) или 1 (неуспешное завершение)

Замечания

В ранних версиях SQL Server пользователи (и роли) не полностью отличались от схем. В SQL Server 2005 схемы полностью отличаются от ролей. Эта новая архитектура отражена в поведении CREATE APPLICATION ROLE. Эта инструкция заменяет sp_addapprole. Дополнительные сведения см. в разделе Отделение пользователей от схем.

Для достижения обратной совместимости с ранними версиями SQL Server sp_addapprole сделает следующее:

  • если схема с таким же именем, как и имя роли приложения, еще не существует, то такая схема будет создана. Владельцем новой схемы будет роль приложения, и она же будет схемой по умолчанию в роли приложения;
  • если схема с таким же именем, как и имя роли приложения, уже существует, то процедура завершится неудачно;
  • сложность пароля не будет проверена sp_addapprole. Но сложность пароля проверяется с помощью CREATE APPLICATION ROLE.

Аргумент password хранится в виде одностороннего хэша.

Хранимая процедура sp_addapprole не может быть выполнена внутри транзакции, определенной пользователем.

ms176096.security(ru-ru,SQL.90).gifПримечание безопасности.
Параметр шифрования Microsoft ODBC encrypt не поддерживается службой SqlClient. По возможности всегда запрашивайте пользователя ввести учетные данные роли приложения во время исполнения. Избегайте хранения учетных данных в файле. Если необходимо сохранить учетные данные, то зашифруйте их с использованием функций CryptoAPI.

Разрешения

Требует разрешения ALTER ANY APPLICATION ROLE для этой базы данных. Если схема с таким же самым именем и владельцем, как и имя и владелец новой роли, еще не существует, то также требуется разрешение CREATE SCHEMA на базу данных.

Примеры

Следующие примеры добавляют новую роль приложения SalesApp с паролем x97898jLJfcooFUYLKm387gf3 к текущей базе данных.

EXEC sp_addapprole 'SalesApp', 'x97898jLJfcooFUYLKm387gf3' ;
GO

См. также

Справочник

CREATE APPLICATION ROLE (Transact-SQL)

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

Отделение пользователей от схем

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

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