分享方式:


建立應用程式角色

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

本文說明如何使用 SQL Server Management Studio 或 Transact-SQL 在 SQL Server 中建立應用程式角色。 應用程式角色限制使用者只能經由特定應用程式存取資料庫。 應用程式角色沒有使用者,因此當選擇應用程式角色時,角色成員清單不會顯示。

重要

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

背景

從 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 認證登入時間。 在有連線池的環境中,影響通常較低,但在沒有連線池或對登入延遲有密切監控的情況下,影響可能更明顯。

使用 SQL Server Management Studio

  1. 在 [物件總管] 中,展開您要建立應用程式角色的資料庫。

  2. 展開 [安全性] 資料夾。

  3. 展開 [角色] 資料夾。

  4. 以滑鼠右鍵按一下 [應用程式角色] 資料夾,然後選取 [新增應用程式角色]。

  5. 在 [應用程式角色 - 新增] 對話方塊,於 [一般] 頁面上的 [角色名稱] 方塊中輸入新應用程式角色的名稱。

  6. [預設結構描述] 方塊中,透過輸入物件名稱,指定擁有此角色建立的物件之結構描述。 或者,選擇省略號 (...) 以開啟 「定位結構 」對話框。

  7. [密碼] 方塊中,輸入新角色的密碼。 在 [確認密碼] 方塊中再次輸入密碼。

  8. [此角色擁有的結構描述] 底下,選取或檢視此角色將擁有的結構描述。 一個綱要只能被一個綱要或角色所擁有。

  9. 選取 [確定]。

其他選項

[應用程式角色 - 新增] 對話方塊還提供位於其他兩個頁面的選項:[安全物件] 和 [擴充屬性]。

  • [安全性實體] 頁面列出所有可能的安全性實體以及可授與登入的安全性實體權限。

  • [擴充屬性] 頁面讓您能夠將自訂屬性加入至資料庫使用者。

使用 transact-SQL

  1. 在物件總管中,連線到資料庫引擎的執行個體。

  2. 在標準列上,選取 [新增查詢]

  3. 複製下列範例並將其貼到查詢視窗中,然後選取 [執行]。 這段程式碼會建立一個名為 weekly_receipts code 的應用程式角色,該角色有密碼, Sales 並作為預設結構。 以強密碼取代 <password>

    -- 
    
    CREATE APPLICATION ROLE weekly_receipts
        WITH PASSWORD = '<password>'
        , DEFAULT_SCHEMA = Sales;
    GO
    

權限

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