Postgres 9.1 GRANT不起作用

时间:2012-02-25 18:25:02

标签: postgresql privileges

我尝试授予这样的权限:

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访问任何内容。 我错过了什么?

2 个答案:

答案 0 :(得分:25)

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;

答案 1 :(得分:1)

除了对 Postgres 对象本身进行通常的 GRANT 之外,还需要在对象所在的架构上授予使用权(这由架构所有者完成)。

示例:

将表 上的所有内容都授予

将 SCHEMA 的使用权授予