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


sp_addapprole (Transact-SQL)

Область применения: SQL Server

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

Внимание

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

Соглашения о синтаксисе Transact-SQL

Синтаксис

sp_addapprole
    [ @rolename = ] N'rolename'
    , [ @password = ] N'password'
[ ; ]

Аргументы

[ @rolename = ] N'rolename'

Имя новой роли приложения. @rolename — sysname без значения по умолчанию. @rolename должен быть допустимым идентификатором и не может существовать в текущей базе данных.

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

[ @password = ] N'password'

Пароль, необходимый для активации роли приложения. @password — sysname без значения по умолчанию. @password не может бытьNULL.

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

0 (успешно) или 1 (сбой).

Замечания

В более ранних версиях SQL Server пользователи (и роли) не полностью отличаются от схем. Начиная с SQL Server 2005 (9.x), схемы полностью отличаются от ролей. Эта архитектура отражается в поведении 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