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

SQL Server 2005 安全策略深度解析:認證、授權與加密全面升級

     編輯:關於SqlServer

核心哲學:預設安全

延續 Windows Server 2003 「預設鎖定」策略,SQL Server 2005 安裝後所有服務與功能預設關閉,需透過「表面區域配置工具」手動啟用,大幅縮小攻擊面。

一、認證機制強化

Windows 認證 (推薦)

  • 對 Active Directory 驗證,利用底層安全架構
  • 需用戶與資料庫同域

混合模式認證

  • SQL Server 管理登入憑證
  • 無法利用 AD 群組原則、密碼複雜度等進階功能

新增:密碼原則與到期管理 (需 Windows Server 2003)

CREATE LOGIN Paul WITH PASSWORD='P@ssw0rd1'
    MUST_CHANGE, CHECK_EXPIRATION=ON, CHECK_POLICY=ON
  • CHECK_POLICY:啟用強制密碼複雜度、長度、歷史記錄
  • CHECK_EXPIRATION:控制登入到期日
  • MUST_CHANGE:首次登入強制變更密碼 (Beta 2 不支援)

端點認證

支援透過 HTTP.sys 提供 XML Web Service 時的安全通訊。

二、授權模型重構:使用者與結構描述分離

SQL Server 2000 問題

結構描述 = 使用者,物件完整名稱含擁有者 (schema.object)。刪除使用者導致結構描述變更,連帶破壞客戶端查詢。

SQL Server 2005 解決

結構描述成為獨立資料庫物件,擁有名稱與擁有者,與使用者無固定關聯。刪除/新增使用者不影響結構描述與物件命名。

-- 建立結構描述與授權範例
CREATE SCHEMA SalesData
CREATE TABLE SalesData.SalesPromotion (ID INT, Name VARCHAR(255))
GRANT ALL ON SalesData TO Paul
ALTER USER Paul WITH DEFAULT_SCHEMA = SalesData
GRANT SELECT ON SCHEMA::SalesData TO Mary

三、執行內容切換

EXECUTE AS 允許預存程序以指定身分執行:

  • CALLER (預設):呼叫者身分
  • USER='name':指定使用者
  • SELF:建立者身分
  • OWNER:物件擁有者身分

四、原生加密架構

金鑰管理兩種模式

  1. 應用程式自管:對稱金鑰以密碼加密儲存於資料庫,密碼須自行妥善保管
  2. SQL Server 代管:服務主金鑰 (SMK) + 資料庫主金鑰 (DMK) 階層保護

三種加密選項

  • 對稱金鑰:效能最高 (比非對稱快 1,000-10,000 倍),雙方共用同一金鑰,需安全分發
  • 非對稱金鑰:公開/私鑰對,適合金鑰交換、數位簽章
  • 憑證:包含公開金鑰與身分資訊,支援匯入現有憑證或建立新憑證

T-SQL 加密/解密函數

-- 對稱金鑰
OPEN SYMMETRIC KEY MyKey DECRYPTION BY PASSWORD='p@ssw0rd1'
SELECT ENCRYPTBYKEY(KEY_GUID('MyKey'), 'Secret Data')
SELECT DECRYPTBYKEY(...)

-- 非對稱金鑰
SELECT ENCRYPTBYASYMKEY(ASYMKEY_ID('MyKeyName'), 'Secret')
SELECT DECRYPTBYASYMKEY(ASYMKEY_ID('MyKeyName'), @Encrypted)

-- 憑證
SELECT ENCRYPTBYCERT(CERT_ID('MyCert'), 'Secret')
SELECT DECRYPTBYCERT(CERT_ID('MyCert'), @Encrypted)

總結

SQL Server 2005 在認證細粒度控制、授權架構解耦、執行內容切換、原生加密 API 四大面向全面升級,達到企業級資料保護需求。

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