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 Server 的相容性,sp_addapprole 會執行下列動作:
如果尚未有與應用程式角色同名的結構描述,就會建立這類結構描述。 新的結構描述是由應用程式角色所擁有,它會是應用程式角色的預設結構描述。
如果已經有與應用程式角色同名的結構描述,該程序就會失敗。
sp_addapprole 不會檢查密碼複雜性。 但是,CREATE APPLICATION ROLE 會檢查密碼複雜性。
password 參數是儲存為單向雜湊。
sp_addapprole 預存程序不能從使用者自訂交易中執行。
![]() |
---|
SqlClient 不支援 Microsoft ODBC encrypt 選項。 可以的話,請提示使用者在執行階段輸入應用程式角色認證。 請避免將認證儲存在檔案中。 如果您必須保存認證,請利用 CryptoAPI 函數來加密認證。 |
權限
需要資料庫的 ALTER ANY APPLICATION ROLE 權限。 如果尚未有與新角色同名以及同一個擁有者的結構描述,也會需要資料庫的 CREATE SCHEMA 權限。
範例
下列範例會將新的應用程式角色 SalesApp 連同密碼 x97898jLJfcooFUYLKm387gf3 加入目前資料庫中。
EXEC sp_addapprole 'SalesApp', 'x97898jLJfcooFUYLKm387gf3' ;
GO