適用於:SQL Server
Azure SQL 資料庫
Azure 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 的應用程式角色,這個應用程式角色將密碼 987Gbv876sPYY5m23 和 Sales 當做它的預設結構描述。
CREATE APPLICATION ROLE weekly_receipts
WITH PASSWORD = '987G^bv876sPY)Y5m23'
, DEFAULT_SCHEMA = Sales;
GO