共用方式為


CREATE APPLICATION ROLE (Transact-SQL)

適用於:SQL ServerAzure SQL 資料庫Azure SQL 受控執行個體

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

Transact-SQL 語法慣例

語法

CREATE APPLICATION ROLE application_role_name
    WITH PASSWORD = 'password' [ , DEFAULT_SCHEMA = schema_name ]

引數

application_role_name

指定應用程式角色的名稱。 這個名稱必須尚未用來參考資料庫中的任何主體。

密碼 = '密碼'

指定資料庫使用者要用來啟動應用程式角色的密碼。 您一定要使用增強式密碼。 password 必須符合執行 SQL Server 實例之電腦的 Windows 密碼原則需求。

DEFAULT_SCHEMA = schema_name

指定伺服器在解析這個角色的物件名稱時,將搜尋的第一個結構描述。 如果DEFAULT_SCHEMA未定義,應用程式角色將會使用 dbo 作為其默認架構。 schema_name 可以是資料庫中不存在的架構。

備註

重要

設定應用程式角色時會檢查密碼複雜性。 叫用應用程式角色的應用程式必須儲存其密碼。 應用程式角色密碼應該一律以加密方式儲存。

您可以在 sys.database_principals 目錄檢視中,看到應用程式角色。

如需如何使用應用程式角色的資訊,請參閱應用程式角色

備註

架構不等於資料庫使用者。 使用 系統目錄檢視 來識別資料庫用戶與架構之間的任何差異。

從 SQL Server 2012 (11.x)開始,SQL Server 和 Azure SQL DB 使用 SHA-512 哈希結合 32 位隨機和唯一的 Salt。 此方法在統計上使攻擊者無法推算密碼。

SQL Server 2025(17.x)引入了迭代雜湊演算法 RFC2898,也稱為 基於密碼的金鑰推導函數 (PBKDF)。 此演算法仍然使用SHA-512,但多次哈希密碼(100,000個反覆專案),大幅降低暴力密碼破解攻擊的速度。 這項變更可增強密碼保護,以響應不斷演變的安全性威脅,並協助客戶遵守 NIST SP 800-63b 指導方針。 此安全強化採用更強的雜湊演算法,可能稍微延長 SQL 認證登入時間。 在有連線池的環境中,影響通常較低,但在沒有連線池或對登入延遲有密切監控的情況下,影響可能更明顯。

權限

需要資料庫的 ALTER ANY APPLICATION ROLE 權限。

範例

下列範例會建立一個稱為 weekly_receipts 的應用程式角色,這個應用程式角色將密碼 987Gbv876sPYY5m23Sales 當做它的預設結構描述。

CREATE APPLICATION ROLE weekly_receipts
    WITH PASSWORD = '987G^bv876sPY)Y5m23'
    , DEFAULT_SCHEMA = Sales;
GO