Postgresql

PostgreSQL - 自動化數據庫授權

  • July 20, 2018

我們在 Amazon RDS 上管理大約 200 個 postgres 實例。我們經常遇到的問題是我們的“DBA”帳戶無法訪問內容。基本的東西。表、視圖等

是否有某種基於事件的自動化,稱之為觸發器左右,可以自動處理這個?手動授權不是一種選擇——自動化是唯一可能的解決方案。

每當創建一個新數據庫時,就會創建一個新模式,或者創建任何東西 - “DBA”使用者被授予訪問它的權限。

postgres 9.6 或 10 有哪些解決方案?

範例案例:

  • RDS 實例“dev1”有 10 個 postgres 數據庫
  • 因此,我們進入並將這 10 個數據庫中所有內容的訪問權限授予我們的 dbauser
  • 下週,將進行新的部署,創建第 11 個數據庫
  • 之後我們收到從第 11 個數據庫中導出表的請求,而我們的使用者無權訪問它。

我們想消除它。

您可以在許多 DDL 事件上定義事件觸發器,但沒有針對CREATE DATABASE. 這意味著您必須在數據庫定義中包含訪問權限。從這一點來看,有兩種方法:一種是再次觸發事件,另一種是為您擁有的不同對像類型設置預設權限。無論如何,我更喜歡後者,因為它更簡潔(對象和權限的定義方式相同,開發人員和其他人也很容易掌握)。

有關它如何工作的範例,請參閱我的一個較早的答案,以及其中的ALTER DEFAULT PRIVILEGES一些內容。它是關於表格的,但您可以輕鬆地將其推廣到其他對像類型。

引用自:https://dba.stackexchange.com/questions/212623