【问题标题】:PostgreSQL duplicate a user with same permissionPostgreSQL复制具有相同权限的用户
【发布时间】:2022-01-17 21:04:01
【问题描述】:

我目前正在进行一些项目迁移,我想在我们的新 PostgreSQL 中创建一个用户,其角色和权限集与现有 PostgreSQL 中的用户相同强>。

我已经对此进行了搜索,但没有找到任何答案。

how to create duplicate role of a user in postgres -> 此解决方案适用于同一个 PostgreSQL 实例

https://www.postgresonline.com/journal/archives/81-Backing-up-Login-Roles-aka-Users-and-Group-Roles.html -> 复制所有具有相同用户名和密码的用户。我不想要那个。

注意:我不想复制用户(用户名和密码可以不同,但​​是如果解决方案更简单,可以相同),我只想创建一个新的基于现有 PostgreSQL 中的角色和权限的新实例中的用户。

【问题讨论】:

  • 典型的方法是在角色中捆绑权限,因此您只需将角色授予新用户。由于用户和角色本质上是一回事,您可以简单地将现有用户授予新用户,从而使新用户具有相同的权限。

标签: postgresql psql


【解决方案1】:

这并不容易做到,因为权限不是存储在用户身上,而是在对象上:每个表、视图、函数等都知道哪个用户对它有哪些权限。因此,要复制用户的权限,您必须复制所有对象定义。

您可以这样做:运行pg_dump -s dbname 转储数据库的所有元数据并将它们恢复到新数据库。如果要更改新数据库中的用户名,只需重命名角色即可。

【讨论】:

    猜你喜欢
    • 2014-05-18
    • 2022-01-09
    • 2020-11-15
    • 2017-04-07
    • 1970-01-01
    • 2011-10-08
    • 2012-10-09
    • 1970-01-01
    • 2021-09-21
    相关资源
    最近更新 更多