賽迪網 > IT技術 數據庫 > 精彩更新
  IT資訊搜索
 
IT產品搜索
[程式開發][網管世界][網路安全][數據庫技術]
[作業系統][嘉賓聊天·線上訪談][活動集錦]
[精彩專題][Symantec專區][訂閱IT技術週刊]
[開發論壇][網管論壇][安全論壇][數據庫論壇]
[作業系統論壇][Sybase專區][IBM dW技術專區]
[病毒求助][病毒與漏洞播報][文檔·源碼下載]

講解Informix安全特性保護數據的具體措施 (1)

發佈時間:2008.07.25 08:52     來源:賽迪網    作者:Barnett

【賽迪網-IT技術報道】前言

保護數據需要權衡考慮安全性和訪問能力。如何找到最合適的方法呢?

目前,公司和政府為數據的可審計性和控制制定了嚴格的標準,這使數據庫安全性成為近來的熱點。DBA 必須保證用戶能夠訪問完成工作所需的數據,同時避免數據風險。

絕對保護數據的惟一方法是把伺服器關閉,鎖起來,不讓人使用。但是,為了讓數據庫發揮作用,就必須允許訪問數據。IDS 在數據庫、表和列級都應用了安全措施。安全措施還可以應用於視圖中的記錄級。所有安全措施都基於用來連接數據庫的用戶名。

我將解釋 Informix 安全特性如何幫助您保護數據,同時允許適當的用戶訪問數據。

安全建議

每個環境和數據庫開發的每個階段有不同的數據庫安全性需求。開發環境必須讓程式員能夠快速創建和修改數據庫對象。測試和生產環境需要穩定性,需要控制可以對數據庫對象執行哪些操作。有效的數據庫安全模型的一個關鍵部分是,定義和分配 DBA、數據庫安全官(DSO)和對象所有者角色。

對於 DBA 角色,應該創建一個抽象的用戶登錄。DBA 本質上是數據庫超級用戶。建立一個單獨的登錄會減少用戶意外刪除數據庫的風險。這條原則在生產環境中尤其重要。DBA 登錄名應該是數據庫和數據庫中所有表的創建者。DBA 應該是對數據庫中任何表有修改特權的惟一用戶。作為數據庫和數據庫中所有表的創建者,DBA 可以把特權授予其他用戶。

一些生產環境可能需要一個 DSO,這是 DBA 之外的一個單獨職位,他負責數據安全。DSO 也應該是一個單獨的抽象用戶登錄。為了能夠有權在數據庫中添加新用戶,DSO 需要 DBA 數據庫特權。DSO 還需要數據庫中每個表的授予特權,以便把特權授予其他用戶。

為了建立具有 DSO 特權的角色,必須給 DSO 分配用戶對於數據庫中每個表可能需要的所有特權。下面是使用帶 grant option 的 grant 命令的 SQL 語法:

GRANT SELECT, INSERT, UPDATE, DELETE, INDEX ON table_name TO dso_login_name

WITH GRANT OPTION;

Public特權

Informix 使用關鍵字 public 表示應用於所有用戶的特權。public 關鍵字是一個非常強大的工具,可以開放對數據的訪問。同樣,為了防止未經過授權的所有用戶連接數據庫和選擇數據,可以完全撤消 public 特權。

對象所有者特權

創建數據庫或數據庫對象(表、索引、函數、過程等等)的用戶就是這個對象的所有者,他控制這個對象的訪問和特權。對象的所有者擁有所有表級特權,而且這些特權不能撤消。當系統從開發環境轉移到生產環境時,或者表或數據庫原來的所有者離開組織時,這個限制可能會造成問題。任何其他用戶(即使是 DBA)都無法撤消所有者的特權。因此,必須謹慎地決定數據庫或表的所有者。

表的所有者是可以向其他用戶授予這個表的特權的惟一用戶。一些應用程式也使用 owner.tablename 語法來訪問表。在我的一個客戶的數據庫中,表在開發、接收測試和生產階段有不同的所有者。一個表只能有一個所有者。當把應用程式代碼從開發環境轉移到測試環境,然後再轉移到生產環境中時,必須改變表的所有者,這可能會造成問題。在不同的環境中,必須修改應用程式代碼中的 owner.tablename,這會增加風險。

數據庫特權

有三個數據庫特權級別:DBA、Resource 和 Connect。Connect 特權允許用戶訪問數據庫以及添加、修改和刪除數據。Resource 特權授予用戶所有 Connect 特權,還授予創建新的表、索引和過程的特權。DBA 特權包括 Connect 和 Resource 特權,還授予用戶把 Resource、Connect 或 DBA 特權授予其他用戶的權力。具有 DBA 特權的用戶還可以刪除數據庫中的所有對象或完全刪除數據庫。

對於大多數數據庫活動,Connect 特權就足夠了。要創建新對象的程式員或開發人員可能需要 Resource 特權。DBA 特權就像是 Unix 作業系統的 “超級用戶”。授予或撤消數據庫特權的語法是:

grant [ dba | resource | connect ] to [ public | USERS ];

revoke [ dba | resource | connect ] from [ public | USERS ];

數據庫特權存儲在系統表 sysusers 中。可以用 select * from sysusers; 列出所有用戶及其數據庫特權,顯示的資訊包括:

◆username,連接數據庫的用戶的登錄名

◆usertype,數據庫特權類型;D 表示 DBA,R 表示 Resource,C 表示 Connect

◆priority,這一列沒有正式使用,但它是系統表的一部分(通常,對於所有用戶,這一列是 5;對於數據庫所有者,是 9)

◆password,這一列沒有使用,但它是系統表的一部分

數據庫特權

應該避免把 DBA 特權授予 public。我見過一些第三方應用程式把 DBA 特權授予 public,僅僅是因為這樣做非常省事。如果把 DBA 特權授予 public,那麼任何用戶都能夠刪除數據庫、撤消所有其他用戶的所有特權和創建新的數據庫用戶。如果把 Resource 特權授予 public,那麼就允許任何用戶在數據庫中創建對象(表或視圖)。

撤消用戶的 DBA 或 Resource 特權會使特權轉換為 Connect。如果希望從數據庫中完全刪除一個用戶,還需要撤消 Connect 特權。

在授予數據庫特權時,採用以下原則可以減少很多麻煩:

◆DBA 特權應該只授予一兩個登錄名,這些登錄名不供常規用戶使用。這些登錄名應該只用於數據庫管理(DBA 和 DSO)。

◆Resource 特權應該只授予開發環境中的程式員,以及必須通過運行過程創建索引的用戶。

◆Connect 特權應該只授予需要訪問數據庫的用戶。

表特權

有七種表特權:

◆Select(查看表中的數據)

◆Insert(在表中添加新的數據行)

◆Update(修改現有行)

◆Delete(刪除數據行)

◆Index(在表中添加索引)

◆Alter(修改表結構)

◆Reference(在引用約束中引用列)

用戶必須具有 Resource 數據庫特權和相關的表特權,才能創建索引、修改表結構或引用持久表。

1 2 下一頁>>


[ 發表評論 ] 字體[  ] [ 列印 ] [ 進入博客 ] [ 進入論壇 ]  [ 推薦給朋友 ]
  相關文章
· 講解Informix安全特性保護數據的具體措施 (07-24) · Informix日誌分析工具onlog的具體應用 (07-23)
· 有關BCB連接Informix數據庫的參考示例 (06-25) · 使用標準I/O進行Informix同時備份和恢復 (06-25)
· 實例講解Informix日期邊界處理的缺陷問題 (06-25) · Informix數據庫記錄數過多引起的性能下降 (06-03)
· 用dbschema工具導出Informix數據庫的結構 (04-29) · 在Informix數據庫中釋放異常鎖資源 (04-24)
· Informix系統維護的特殊問題 (04-24) · Informix數據庫利用索引提高查詢效率 (04-24)
  客戶需求反饋表
* 姓  名:
更多資料  了解方案  認識廠商
* 單位名稱:
* 聯繫電話:
* 電子郵件:
  賽迪推薦  
  手機·資費 ·新品·導購·評測·手機資費·寬帶
手機搜索  諾基亞 N73 MOTO Z6
  IT產品 ·筆記本·臺式機·伺服器·列印·投影
IT產品搜索 
  IT技術 ·開發·網管·安全·數據庫·作業系統
  資訊化 ·熱點·專題·訪談·週刊·方案案例
· 移動資訊化市場方興未艾 企業呼喚標準出臺
· 如何把握企業價值差異 避免CRM與SCM脫節
· 齊看四大廠商的SaaS動態 ERP案例分析
· 通方期貨CRM解決方案 方正電子公文系統
  IT博客 ·曾劍秋·項立剛·Java學習·網管
  IT技術論壇 ·開發·網管·安全·數據庫·系統