gpt4 book ai didi

postgresql - 具有使用权限但不具有删除权限的 Postgres 角色

转载 作者:行者123 更新时间:2023-11-29 14:36:01 25 4
gpt4 key购买 nike

我有一个 postgres 实例,其用户 root 拥有完全的管理员权限。

我有两个数据库 db1 和 db2。

对于每个数据库,我希望有两个用户 dbN_user 和 dbN_admin。 dbN_user 将由我的应用程序使用,而 dbN_admin 将用于更改表结构的迁移。

应用程序从未删除任何行,我想用用户权限强制执行。

db1_user 应该能够连接到 db1,并且能够SELECTINSERTUPDATE,但不能DELETE.

db1_admin 应具有DELETECREATE TABLEALTER TABLE 的额外权限。

设置它的 SQL 语句是什么?

最佳答案

db<em>N</em>_admin将是对象的所有者,因此用户将自动拥有所有权限。

您需要 GRANT db<em>N</em>_user 的特权在表和其他对象本身上,而不是在数据库上。

只需添加正确的 GRANT CREATE TABLE 之后的语句填充数据库的 SQL 脚本中的语句。你需要GRANT USAGE对包含对象的架构的特权 db<em>N</em>_user

可以在数据库中定义默认权限:

ALTER DEFAULT PRIVILEGES FOR dbN_admin
GRANT SELECT, INSERT, UPDATE ON TABLES
TO dbN_user;

这将在 db<em>N</em>_admin 时自动授予权限创建一个新表(但它不影响在 ALTER DEFAULT PRIVILEGES 命令之前创建的表)。

关于postgresql - 具有使用权限但不具有删除权限的 Postgres 角色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44624234/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com