簡體   English   中英

如何將管理員用戶添加到現有的 postgres 數據庫?

[英]How to add admin user to existing postgres database?

我們有一個現有的 postgres 數據庫gsrdb超級用戶gsr gsrdb在生產中。 我們一直在使用該用戶gsr進行所有數據庫維護。 此外,我們的應用服務使用同一個用戶gsr在數據庫上進行交易。

我們現在想改變這一點。 我們需要一個單獨的超級用戶gsr_admin (其憑據由 Vault 管理),它可以進行 dba 維護,但仍然讓我們的應用服務使用現有用戶gsr

我面臨的問題是,到目前為止所有的數據庫對象都歸gsr用戶所有,如果我以用戶gsr_admin身份運行更新,則在數據庫上運行更新,無論是表約束還是序列,它都失敗說error: must be owner of relation...blah blah

我怎樣才能解決這個問題?

所以我在想是否可以創建一個名為admin_group超級用戶管理員組角色,並將所有數據庫對象的所有所有權從用戶gsr重新分配給它,然后將用戶gsrgsr_admin都更改為屬於這個管理員組角色。 這樣,到目前為止創建的所有內容都不會由角色admin_group擁有嗎? 以及我是否以用戶gsrgsr_admin身份創建新對象,他們中的任何一個仍然可以更新對象?

我可能錯了。 真的很感激一些投入。

只需運行

ALTER ROLE gsr NOSUPERUSER;
ALTER ROLE gsr RENAME TO gsr_admin;  -- needs a new password now
CREATE ROLE gsr LOGIN;
GRANT USAGE ON SCHEMA myschema TO gsr;
GRANT SELECT, INSERT, UPDATE, DELETE
   ON ALL TABLES IN SCHEMA myschema TO gsr;

同樣,授予USAGE序列和其他所需權限。 您可能還想為未來的對象運行一些ALTER DEFAULT PRIVILEGES

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM