gpt4 book ai didi

postgresql - 错误 : permission denied for relation tablename on Postgres while trying a SELECT as a readonly user

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

GRANT SELECT ON ALL TABLES IN SCHEMA public TO readonly;

只读用户可以连接,查看表格,但是当它尝试做一个简单的选择时,它会得到:

ERROR: permission denied for relation mytable
SQL state: 42501

这是在 PostgreSQL 9.1 上发生的

我做错了什么?

最佳答案

这是最近更新的 PostgreSQL 9+ 的完整解决方案。

CREATE USER readonly  WITH ENCRYPTED PASSWORD 'readonly';
GRANT USAGE ON SCHEMA public to readonly;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO readonly;

-- repeat code below for each database:

GRANT CONNECT ON DATABASE foo to readonly;
\c foo
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO readonly; --- this grants privileges on new tables generated in new database "foo"
GRANT USAGE ON SCHEMA public to readonly;
GRANT SELECT ON ALL SEQUENCES IN SCHEMA public TO readonly;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO readonly;

感谢https://jamie.curle.io/creating-a-read-only-user-in-postgres/几个重要方面

如果有人找到更短的代码,并且最好是能够对所有现有数据库执行此操作的代码,那就多谢了。

关于postgresql - 错误 : permission denied for relation tablename on Postgres while trying a SELECT as a readonly user,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13497352/

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