sp_addapprole (Transact-SQL)
适用范围:SQL Server
向当前数据库中添加应用程序角色。
重要
在 SQL Server的未来版本中将删除此功能。 请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。 请改用 CREATE APPLICATION ROLE 。
语法
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
无法从用户定义的事务中执行存储过程。
重要
SqlClient 不支持Microsoft ODBC encrypt
选项。 如果您可以,请在运行时提示用户输入应用程序角色凭据。 不要将凭据存储在一个文件中。 如果必须使凭据持久化,请使用 CryptoAPI 函数将它们加密。
权限
需要对数据库具有 ALTER ANY APPLICATION ROLE 权限。 如果具有与新角色相同的名称和所有者的架构尚不存在,则还需要对数据库具有 CREATE SCHEMA 权限。
示例
以下示例将具有密码x97898jLJfcooFUYLKm387gf3
的新应用程序角色SalesApp
添加到当前数据库。
EXEC sp_addapprole 'SalesApp', 'x97898jLJfcooFUYLKm387gf3';
GO