在我的應用程序中,請求者有權僅查詢某些列。請求者之間的列可能有所不同。 where子句在請求之間改變,以便返回的行隨着每個查詢而改變。處理這種訪問控制的最佳方式是什麼?我應該使用數組來存儲允許的列,然後在我的應用程序中執行檢查嗎?如何根據請求者的id限制SQL列?
我對PostgreSQL的9.x中
例子: 我們有可以訪問的病人記錄,但不是所有的醫學專業人士應該能夠訪問所有信息專業醫務人員。他們試圖請求關於任何患者(有一個uid)的任意信息,但我們應該強制執行訪問控制。
所以說,信息是姓名,出生日期,血型和疾病的日期
醫生A對所有領域 醫生B可看到,除了血型一切 管理員只能看到出生 的名字和日期的權限血液科醫生只能看到血型
GRANT似乎面向DB「用戶」,而我的「用戶」是應用程序的用戶。具體來說,當我打開與db的連接時,我的應用程序的當前用戶將被修復,我認爲創建許多短暫連接並不是一個好主意。 – user492922
然後,將選項減少到數字2。 – Curt
至於你的第二個選擇,「可選」表的模式是什麼?每行是否包含每列的布爾值?我可以在應用程序方面開展工作。我最初的建議是使用數組來存儲列並在應用程序中進行檢查嗎? – user492922