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


sp_addapprole (Transact-SQL)

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

Важное примечаниеВажно!

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

Применимо для следующих объектов: SQL Server (начиная с SQL Server 2008 до текущей версии).

Значок ссылки на раздел Cинтаксические обозначения в 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 не может быть выполнена внутри транзакции, определенной пользователем.

Примечание по безопасностиПримечание по безопасности

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

Разрешения

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

Примеры

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

EXEC sp_addapprole 'SalesApp', 'x97898jLJfcooFUYLKm387gf3' ;
GO

См. также

Справочник

CREATE APPLICATION ROLE (Transact-SQL)