我想给一个用户在数据库上的所有权限,而不使它成为管理员。
我想这样做的原因是,目前DEV和PROD是同一集群上的不同db,所以我不希望用户能够更改生产对象,但必须能够更改DEV上的对象。
我试着:
grant ALL on database MY_DB to group MY_GROUP;
但它似乎没有给予任何许可。
然后我试着:
grant all privileges on schema MY_SCHEMA to group MY_GROUP;
它似乎允许我创建对象,但不允许我在该模式上查询\删除属于其他用户的对象
我可以继续在MY_SCHEMA上给用户USAGE权限,但是它会抱怨没有对表的权限…
所以我想我的问题是:是否有任何简单的方法将所有权限赋予一个用户在数据库上?
我在PostgreSQL 8.1.23工作。
在PostgreSQL 12及以后版本中,可以将数据库中表的所有权限授予角色/用户/帐户。
语法为:
GRANT ALL ON table_name TO role_name;
如果你想将它授予数据库中的所有表,那么语法将是:
GRANT ALL ON ALL TABLES TO role_name;
如果你想将它授予数据库中模式的所有表,那么语法将是:
GRANT ALL ON ALL TABLES IN SCHEMA schema_name TO role_name;
注意:请记住,在将数据库的特权授予用户之前,您需要选择数据库。
资源:PostgreSQL GRANT
这是所有
我希望这对你们有帮助
在PostgreSQL 12及以后版本中,可以将数据库中表的所有权限授予角色/用户/帐户。
语法为:
GRANT ALL ON table_name TO role_name;
如果你想将它授予数据库中的所有表,那么语法将是:
GRANT ALL ON ALL TABLES TO role_name;
如果你想将它授予数据库中模式的所有表,那么语法将是:
GRANT ALL ON ALL TABLES IN SCHEMA schema_name TO role_name;
注意:请记住,在将数据库的特权授予用户之前,您需要选择数据库。
资源:PostgreSQL GRANT
这是所有
我希望这对你们有帮助