postgresql 它不工作-尝试了许多方法仍然存在相同的问题[重复]

mzmfm0qo  于 2023-08-04  发布在  PostgreSQL
关注(0)|答案(2)|浏览(136)

此问题已在此处有答案

Not working : ALTER DEFAULT PRIVILEGES FOR ROLE [duplicate]
Comprehending ALTER DEFAULT PRIVILEGES(1个答案)
昨天关门了。
我的是PostgreSQL 13版本,当我使用Alter默认权限时会看到一些奇怪的问题,让我解释一下。
我用Postgres用户登录并创建了名为testdb的数据库,模式名为lab,两个表名为emp 1和emp 2
并且已经在lab.testdb下创建了具有select权限的用户测试(这具有给予角色)--完整的步骤如下。

CREATE ROLE read_role;
GRANT SELECT ON ALL TABLES IN SCHEMA lab TO read_role;
CREATE USER test WITH PASSWORD 'xxxxxx';
GRANT CONNECT ON DATABASE testdb TO test;
GRANT USAGE ON SCHEMA lab TO test;
GRANT read_role TO test;

字符串
假设我在lab.testdb下创建了第一个名为“emp 1”的表,然后我使用我创建的名为“test”的用户连接到“testdb”-
使用该用户,我能够成功地查询名为emp 1的表。
现在问题来了,假设在“lab.test”中使用postgres作为用户创建了另一个名为“emp 2”的表。
所以如果我用

select * from emp2


在“测试”用户上下文中,我得到了错误消息,称为-

ERROR:  permission denied for table emp2


所以有很多事情表明,如果我们使用更改默认权限-将修复所有未来的表太多,所以我已经使用下面的exuected下“postgres”

ALTER DEFAULT PRIVILEGES FOR ROLE read_role IN SCHEMA lab GRANT SELECT ON TABLES TO read_role;


发布exuection我得到相同的错误信息,但如果我尝试-

GRANT SELECT ON ALL TABLES IN SCHEMA lab TO read_role;


再次修复。
但是如果我创建其他新表,同样的问题也会发生,尝试同样的方法,它根本不起作用--需要一些帮助来解决,我在哪里遗漏或修复。

bwleehnv

bwleehnv1#

授予“测试”用户对实验室模式中所有表的选择权限。第一个月

au9on6nz

au9on6nz2#

不确定,但这对我来说很好。

CREATE ROLE read_role LOGIN PASSWORD 'read_role';

grant all privileges on schema lab  to read_role;

grant select on all tables in schema lab  to read_role;

字符串
使用角色read_role登录并尝试一次。

相关问题