使用Postgresql授予对所有数据库及其表的访问权限
所以我做了使用Postgresql授予对所有数据库及其表的访问权限,postgresql,privileges,Postgresql,Privileges,所以我做了 GRANT USAGE ON SCHEMA public TO myuser; GRANT SELECT ON ALL TABLES IN SCHEMA public TO myuser; 甚至 GRANT ALL PRIVILEGES ON DATABASE mydb1 TO myuser; GRANT ALL PRIVILEGES ON DATABASE mydb2 TO myuser; 但我仍然会收到错误:权限被拒绝错误: => select * from lang
GRANT USAGE ON SCHEMA public TO myuser;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO myuser;
甚至
GRANT ALL PRIVILEGES ON DATABASE mydb1 TO myuser;
GRANT ALL PRIVILEGES ON DATABASE mydb2 TO myuser;
但我仍然会收到错误:权限被拒绝
错误:
=> select * from language;
ERROR: permission denied for table language
我错过了什么
对于
GRANT SELECT ON SCHEMA public TO myuser
,我当前的三个Postgresql数据库都有名为public
的模式,SQL到底授予了什么 您需要在运行之前创建表:
GRANT SELECT ON ALL TABLES IN SCHEMA public TO myuser;
或在创建表之前运行:
alter default privileges in schema public grant select on tables to myuser;
您需要在运行之前创建表:
GRANT SELECT ON ALL TABLES IN SCHEMA public TO myuser;
或在创建表之前运行:
alter default privileges in schema public grant select on tables to myuser;
你能提供更多的信息吗?我创建了一个数据库和一个表,我创建了一个用户,对你的问题运行了相同的命令,并为我工作。我的顺序有点不同,我使用
postgres
创建了所有数据库。然后在带有postgres
的pgsql
中,我创建了myuser
,并如上所述授予了权限。你肯定做了更多的事。你能提供更多的信息吗?我创建了一个数据库和一个表,我创建了一个用户,对你的问题运行了相同的命令,并为我工作。我的顺序有点不同,我使用postgres
创建了所有数据库。然后在带有postgres
的pgsql
中,我创建了myuser
,并如上所述授予了权限。你一定做了比这更重要的事。