首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

IIS、SQL Server、ASP.NET 三層安全架構實作指南(下):SQL 授權與 ASP.NET 模擬設定

     編輯:關於SqlServer

承接上篇,本文完成 SQL Server 授權與 ASP.NET 模擬設定,打通從瀏覽器到資料庫的完整安全信任鏈。

授權自訂帳號存取 SQL Server

  1. 開啟 SQL Server 企業管理器,展開目標資料庫(DotNetKB)的「使用者」節點。
  2. 右鍵選擇「新增資料庫使用者」,登入名選擇「<新增>」。
  3. 在「SQL Server 登入屬性」對話框:
    • 名稱輸入 DotNetKB
    • 選擇「Windows 驗證」,網域選擇帳號所在電腦
    • 預設資料庫選擇 DotNetKB
  4. 切換「資料庫存取」頁籤,勾選 DotNetKB 資料庫,角色勾選 public,確定。

SQL Server 登入屬性設定

授與預存程序與函數執行權限

  1. 在企業管理器中開啟 DotNetKB 資料庫的「使用者」屬性,雙擊 DotNetKB 使用者。
  2. 選中 public 角色,點選「屬性」→「權限」。
  3. 在物件清單中找出所有使用者定義的預存程序與函數,勾選 EXECUTE 權限。
  4. 依序確定關閉所有對話框。

理由: 授權給 public 角色而非個別使用者,未來新增登入只需對應此資料庫使用者即可自動繼承執行權限,降低維運複雜度。

配置 ASP.NET 模擬 IIS 身分

修改 Web 專案根目錄下的 web.config,在 <system.web> 區段加入:

<configuration>
  <system.web>
    <!-- 其他設定 -->
    <identity impersonate="true" /> <!-- 模擬 IIS 傳遞的 Windows 身分 -->
    <!-- 其他設定 -->
  </system.web>
</configuration>

關鍵點:

  • 無需在 config 中寫死帳號密碼,身分由 IIS 提供,設定檔外洩不會洩露憑證。
  • impersonate="true" 讓 ASP.NET 執行緒使用 IIS 驗證後的 Windows Token 存取 SQL Server(整合驗證)。
  • 搭配上述 SQL Server 授權,實現端到端的 Windows 整合驗證,避免 SQL 驗證帳號密碼管理風險。

完整架構驗證

  1. 瀏覽器匿名存取網站 → IIS 以 DotNetKB 身分執行 ASP.NET
  2. ASP.NET 透過 impersonate="true" 取得 DotNetKB Token
  3. ADO.NET 使用整合驗證連接 SQL Server → SQL Server 驗證 DotNetKB 登入 → 依 public 角色執行預存程序

至此,三層安全架構建置完成。建議定期審核 public 權限、稽核登入失敗事件、啟用 SQL Server 審計功能。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved