postgres:如何为用户提供读取权限?

时间:2013-05-07 06:16:02

标签: sql postgresql

我已将.sql文件导入postgres。我创建了一个名为“yaq”的数据库并将其导入数据库。

psql=# grant all privileges on database yaq to Jannat;
postgres@server:~$ psql yaq
psql (9.1.8, server 9.1.9)
Type "help" for help.

yaq=# \dt
              List of relations
 Schema |      Name       | Type  |  Owner   
--------+-----------------+-------+----------
 public | relationalfacts | table | yaq
 public | spatial_ref_sys | table | postgres
(2 rows)

yaq=# select * from relationalfacts
yaq-# ;
 id | relation | arg1 | arg2 | timebegin | timeend | location | locationlatitude | locationlongitude | primarywitness | context 
----+----------+------+------+-----------+---------+----------+------------------+-------------------+----------------+---------
(0 rows)

我认为既然我已授予所有者“yaq”而非“yago”的所有权限,因此我无法阅读该关系。是否有某种方法可以将关系表yaq的读取权限授予用户Jannat?请帮忙

1 个答案:

答案 0 :(得分:2)

GRANT ALL ON DATABASE ... 以递归方式授予该数据库中的模式,函数,表等权限。

对于GRANT ALL

DATABASE授予数据库的USAGECONNECT权限。就是这样。

要授予对表的权限,请使用表格授权语句之一或GRANT ALL ON ALL TABLES IN SCHEMA ... TO ...

有关详细信息,请参阅the PostgreSQL manual on GRANT

GRANT用户之前,请考虑您是否应该使用几个角色,然后GRANT用户权限充当这些角色。如果您开始添加更多用户,则在开始时定义角色(组)将为您节省大量麻烦。