sp_addapprole (Transact-SQL)

適用於:SQL Server

將應用程式角色加入至目前資料庫中。

重要

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

Transact-SQL 語法慣例

語法

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