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


sp_addapprole (Transact-SQL)

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

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

В будущей версии 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 Serversp_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

См. также

Справочник

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