我要使用具有SQL Server背景的postgreSQL,并且天真地将相同的概念应用于postgreSQL,以允许不同的用户“默认”共享数据库中的某些对象。
这就是我所做的:
CREATE DATABASE testdb;
CREATE ROLE testdb_role_full INHERIT;
GRANT ALL PRIVILEGES ON DATABASE testdb TO testdb_role_full;
CREATE USER user1 INHERIT;
GRANT testdb_role_full TO user1;
CREATE USER user2 INHERIT;
GRANT testdb_role_full TO user2;
完成后,我使用user1创建了一个表t1。 然后,我以user2身份尝试读取t1表,并收到“权限被拒绝错误” ...:-(
通过阅读文档,看来我必须先发出SET ROLE testdb_role_full
才能充当testdb_role_full。
但是,这并不是我真正想要的。我不希望用户意识到这一点。
所以我的问题:
有什么办法可以使这项工作成功吗?
非常感谢, 乔斯