sp_addapprole (Transact-SQL)
Добавляет роль приложения к текущей базе данных.
Важно! |
---|
В будущей версии Microsoft SQL Server эта возможность будет удалена. Избегайте использования этой возможности в новых разработках и запланируйте изменение существующих приложений, в которых она применяется. Вместо этого используйте CREATE APPLICATION ROLE. |
Синтаксис
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
См. также