適用於: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預存程式無法從使用者定義的交易內執行。
重要
SqlClientencryptMicrosoft ODBC 選項。 您可以在執行時間提示使用者輸入應用程式角色認證。 請避免將認證儲存在檔案中。 如果您必須保存認證,請使用 CryptoAPI 函式加以加密。
權限
需要資料庫的 ALTER ANY APPLICATION ROLE 權限。 如果與新角色具有相同名稱和擁有者的架構尚未存在,則也需要資料庫的 CREATE SCHEMA 許可權。
範例
下列範例會將新的應用程式角色 SalesApp 新增至目前的資料庫。 以強密碼取代 <password> 。
EXECUTE sp_addapprole 'SalesApp', '<password>';
GO