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

DB2 系統目錄視圖預設權限的安全隱憂與對策

     編輯:DB2 教學

問題核心:PUBLIC 預設擁有 SELECT 權限

DB2 部署時會自動建立系統目錄視圖,並將 SELECT 權限授予 PUBLIC 群組。這意味著所有資料庫使用者皆可查詢所有物件的中繼資料——包含建立者、擁有者、權限分配等敏感資訊,無論該使用者是否擁有該物件的實際存取權。

與 Oracle 資料字典的對比

特性OracleDB2 (預設)
視圖分層USER_ / ALL_ / DBA_ 三層單一層級,無內建分層
一般用戶可見範圍僅自身物件或有權物件所有物件中繼資料
敏感資訊保護內建隔離需手動調整權限

風險情境

  • 資訊洩露: 攻擊者透過目錄視圖偵察高價值資料表、權限結構
  • 多管理員環境混淆: 各管理員僅需看自己管轄物件,預設卻見全庫
  • 合規違規: 某些法規要求中繼資料亦需存取控制

建議對策

  1. 收回 PUBLIC SELECT 權限: REVOKE SELECT ON SYSCAT.TABLES FROM PUBLIC(同理其他關鍵目錄視圖)
  2. 建立角色視圖: 參考 Oracle 模式,建立 USER_TABLES、ALL_TABLES 等過濾視圖,僅回傳使用者有權物件
  3. 授予角色而非個人: 將視圖存取權授予 DBADM、SECADM 等角色
  4. 審計追蹤: 啟用資料庫審計,記錄目錄視圖異常存取

權衡提醒

收回權限可能影響部分依賴目錄視圖的第三方工具或自製腳本,上線前須完整測試。對於低敏感度環境,預設設定或許可接受;但高價值資料環境務必強化。

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