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
相关内容
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈