資料庫核心資產(客戶資料、財務帳目、智慧財產)往往保存於 SQL Server。網路/作業系統安全做再好,資料庫層面若疏漏,攻擊者仍可繞過前端防禦直接存取資料。本文建立 SQL Server 2000 安全配置基準線。
@、_、exec、declare 等危險字元/關鍵字,或全面改用參數化查詢。sa 必須設定高複雜度密碼(長度≥12、大小寫數字符號混合),嚴禁空密碼。USE master;
SELECT name, password FROM syslogins WHERE password IS NULL;
sa 不可重命名/刪除,必須以最強防護保護。sysadmin 帳號,僅在無法以其他方式登入時使用 sa。sysadmin/securityadmin 等高權限角色成員數量。BUILTIN\Administrators) 自動擁有 SQL 管理權限,可移除該登入(風險:sa 遺失密碼將無法恢復)。SELECT,無 INSERT/UPDATE/DELETE、無 EXEC 系統預存程序。-- 檢查所有登入的擴充/預存程序執行權
SELECT sysobjects.name FROM sysobjects, sysprotects
WHERE sysprotects.uid = 0 AND xtype IN ('X','P') AND sysobjects.id = sysprotects.id;
guest 使用者(各資料庫):sp_revokedbaccess 'guest'。pubs, Northwind。xp_cmdshell 等危險擴充程序:sp_dropextendedproc 'xp_cmdshell'。