在PostgreSQL中,是否可以只向一个模式授予特定用户或组的编辑权限?

在PostgreSQL中,是否可以只向一个模式授予特定用户或组的编辑权限?,postgresql,permissions,database-schema,postgresql-9.4,grant,Postgresql,Permissions,Database Schema,Postgresql 9.4,Grant,在PostgreSQL中,是否可以只向一个模式授予特定用户或组的编辑权限? 我需要用户只更改模式中的对象。类似于超级用户权限,但仅适用于一个架构 感谢您的帮助在您的情况下,最好的设置可能如下所示 让我们假设模式和其中的对象属于object\u owner,应该具有“超级用户”权限的用户称为wannabe 然后你可以做: ALTER ROLE wannabe NOINHERIT; GRANT object_owner TO wannabe; 允许想要的人通过运行 SET ROLE object_

在PostgreSQL中,是否可以只向一个模式授予特定用户或组的编辑权限? 我需要用户只更改模式中的对象。类似于超级用户权限,但仅适用于一个架构


感谢您的帮助

在您的情况下,最好的设置可能如下所示

让我们假设模式和其中的对象属于
object\u owner
,应该具有“超级用户”权限的用户称为
wannabe

然后你可以做:

ALTER ROLE wannabe NOINHERIT;
GRANT object_owner TO wannabe;
允许
想要的人
通过运行

SET ROLE object_owner;

类似于在UNIX中使用
su
。使用
RESET ROLE
再次退出。

您不能允许用户只覆盖一个架构中的所有安全检查,这似乎是您想要的。您必须为用户提供每个对象所需的权限<代码>授权。。。在模式中的所有表上…将有帮助。在user2下创建表:
创建表testsch.weather3(city varchar(80)、temp_hi int、prcp real、date)在超级用户下执行:
将SCHEMA testsch中所有表的所有权限授予user3
在user3下,错误为:
更改表testsch.weather3添加列描述4文本;错误:必须是关系weather3的所有者
如何解决此问题?创建一个函数安全定义器,该定义器将为用户设置该架构中任何新对象的所有者。创建一个执行该函数的偶数触发器。。。丑陋的黑客,但似乎是最可怕的