[英]How to create user(read-write & readonly) and admin roles for an existing postgres database?
[英]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
重新分配給它,然后將用戶gsr
和gsr_admin
都更改為屬於這個管理員組角色。 這樣,到目前為止創建的所有內容都不會由角色admin_group
擁有嗎? 以及我是否以用戶gsr
或gsr_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.