Share via


sp_addapprole (Transact-SQL)

在目前資料庫加入應用程式角色。

重要注意事項重要事項

未來的 Microsoft SQL Server 版本將移除這項功能。請避免在新的開發工作中使用這項功能,並規劃修改目前使用這項功能的應用程式。 請改用 CREATE APPLICATION ROLE

主題連結圖示Transact-SQL 語法慣例

語法

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