延續 Windows Server 2003 「預設鎖定」策略,SQL Server 2005 安裝後所有服務與功能預設關閉,需透過「表面區域配置工具」手動啟用,大幅縮小攻擊面。
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 時的安全通訊。
結構描述 = 使用者,物件完整名稱含擁有者 (schema.object)。刪除使用者導致結構描述變更,連帶破壞客戶端查詢。
結構描述成為獨立資料庫物件,擁有名稱與擁有者,與使用者無固定關聯。刪除/新增使用者不影響結構描述與物件命名。
-- 建立結構描述與授權範例
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:物件擁有者身分-- 對稱金鑰
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 四大面向全面升級,達到企業級資料保護需求。