2016-11-14 61 views
1

我正在爲我的項目尋找一個數據庫,並且想要嘗試一個我以前沒有工作過的新項目,以便學習並找到項目的優勢。我想嘗試的一個最喜歡的是Postgres,但不一定。是否可以爲用戶設置數據庫行級權限?

其中一個功能,我想看看是否有可能是設置的行級權限經過身份驗證,並在我的系統授權的用戶。

說,我有一個用戶john誰是一個普通user。作爲常規用戶,John只能創建/更新自己的行,而不能創建其他行,並且可以讀取數據庫中的某些視圖。

我知道我可以使這些權限在應用層面的工作,但如果它在數據庫中可用,我想嘗試一下。

是否存在具有此功能開箱即用的公共數據庫?

回答

1

是的,它確實有可能和PostgreSQL的9.5(以及更早版本在一定程度上)很好的支持。

https://www.postgresql.org/docs/9.5/static/ddl-rowsecurity.html

這就是所謂的行安全。

幾件事情要記住:

  1. 它是靈活
  2. 可以使用current_user變量的訪問控制
  3. 它依賴於實際的PostgreSQL用戶

有時在應用程序開發中,爲您的Web應用程序中的每種類型的已驗證用戶分配數據庫用戶是不現實的。還有其他方法可以解決這個問題。

在我的一些應用程序中,當連接被Web請求拾取時,我們設置postgresql變量(set command)。這些變量記錄了誰被認證。然後我們使用視圖來控制基於這些變量的訪問。評論你是否想要更多關於這種做法的細節。

相關問題