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