postgresql Postgres 9.1 GRANT不工作

aemubtdh  于 2022-12-03  发布在  PostgreSQL
关注(0)|答案(2)|浏览(170)

我试着授予这样的特权:

zielony=# GRANT ALL PRIVILEGES ON DATABASE baza_tag to strona_user;
GRANT

但什么也没发生:

usename   | usesysid | usecreatedb | usesuper | usecatupd | userepl |  passwd  | valuntil | useconfig 
-------------+----------+-------------+----------+-----------+---------+----------+----------+-----------
postgres    |       10 | t           | t        | t         | t       | ******** |          | 
zielony     |    16384 | t           | t        | t         | t       | ******** |          | 
strona_user |    16440 | f           | f        | f         | f       | ******** |          |

我也没有任何访问通过php。我错过了什么?

eh57zj3b

eh57zj3b1#

PostgreSQL权限系统不是这样工作的。你必须在对象本身上设置权限。如下所示:

GRANT ALL ON ALL TABLES IN SCHEMA public TO strona_user;
GRANT ALL ON ALL SEQUENCES IN SCHEMA public TO strona_user;
GRANT ALL ON ALL FUNCTIONS IN SCHEMA public TO strona_user;

您可能还需要授予方案的权限。

GRANT ALL ON SCHEMA public TO strona_user;
xmjla07d

xmjla07d2#

除了对Postgres对象本身进行通常的GRANT之外,还需要对该对象所在的模式授予使用权限(这由模式所有者完成)。
示例:

GRANT ALL ON TABLE <table_name> TO <user_name>
GRANT USAGE ON SCHEMA <schema_name> TO <user_name>

相关问题