2010-07-15 43 views
1

我正在使用PHP和PostgreSQL編寫CMS。 CMS能夠從單個代碼庫運行多個站點,每個站點/域使用一套獨特的表,根據啓用的功能不同而不同。PostgreSQL/PHP自定義CMS - 單個數據庫安全中的多個模式

我知道PostgreSQL支持單個數據庫中的多個模式,並且訪問權限是由模式設置的。

我的問題是在同一數據庫中每個站點使用單個模式是否存在安全隱患?

This question對理解正反兩方面都非常有幫助,但它沒有提到安全方面。所選答案指出PostgreSQL「schema」等同於MySQL「數據庫」。如果是這種情況,我對這種方法很滿意。但是,我應該知道哪些安全問題?我的理解是,PostgreSQL使用的細化權限應該保護給定數據庫中的每個模式,但是我不能100%確定這一點。

此設置是否也可以在具有多個模式權限的用戶的單個查詢中查詢多個模式?

任何想法將不勝感激,在此先感謝。

回答

1

他們將能夠看到其他架構和表存在,但他們將無法訪問它們。包含這些信息的Postgres目錄不能像這樣被鎖定。它是由模式分離的已知「限制」。

否則,只要安全設置正確,他們不應該能夠通過自己的模式之外訪問的任何信息。

是的,你可以在任何模式/表/對象,他們有機會獲得一個用戶查詢,只要它無論是在SEARCH_PATH或通過明確限定它。

+0

2個很好的答案,這要歸功於兩者。由於額外的模式可見性'gotcha',將此標記爲已使用! – CitrusTree 2010-07-16 11:24:23

1

是的,具有適當權限的用戶可以跨架構進行查詢。只要確保在表名稱前加上模式名稱即可。

安全的角度來看,只要您使用的是單獨的用戶帳戶僅可訪問該模式中的每個模式,應該不會比使用單獨的數據庫有差別。

相關問題