首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将管理员用户添加到现有的postgres数据库中?

如何将管理员用户添加到现有的postgres数据库中?
EN

Stack Overflow用户
提问于 2020-02-20 23:50:02
回答 1查看 511关注 0票数 1

我们有一个现有的postgres数据库gsrdb超级用户 gsr一起生产。我们一直在使用该用户gsr进行数据库维护。另外,我们的app服务使用相同的用户gsr在数据库上进行事务处理。

我们现在就想改变这一切。我们需要一个单独的超级用户gsr_admin(其凭据由Vault管理),它可以进行dba维护,但我们的应用服务仍然使用现有的用户gsr

我面临的问题是,到目前为止,所有的数据库对象都是由gsr用户拥有的,如果我以用户gsr_admin的身份在数据库w.r.t上运行更新的话。无论是表约束还是序列,它都会失败,比如error: must be owner of relation...blah blah

我怎么才能解决这个问题?

因此,我在想,如果我能够创建一个超级用户管理组角色,名为admin_group,并将所有数据库对象的所有所有权从用户gsr重新分配给它,然后将用户gsrgsr_admin都更改为属于这个管理组角色。那样的话,到目前为止创建的所有东西都不是属于角色admin_group的吗?我是否以用户gsrgsr_admin的身份创建新对象,它们中的任何一个仍然可以更新对象?

我可能错了。会非常感谢你的投入。

EN

回答 1

Stack Overflow用户

发布于 2020-02-21 07:10:03

简单地跑

代码语言:javascript
复制
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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60330243

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档