sql - Postgres : How to give read privileges to a user?

标签 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 吗?请帮忙

最佳答案

GRANT ALL ON DATABASE ... 不会递归地授予对该数据库中的架构、函数、表等的权限。

DATABASE

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

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

参见 the PostgreSQL manual on GRANT了解详情。

在向用户GRANT之前,请考虑您是否应该改为使用一些角色,然后GRANT让用户有权充当这些角色。如果您开始添加更多用户,那么在开始时定义角色(组)将为您省去很多麻烦。

关于sql - Postgres : How to give read privileges to a user?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16412384/

相关文章:

mysql - 关系代数到 SQL

postgresql - Laravel Eloquent CAST() 表列与 postgres 生成错误

database - 如何更改 postgresql 9.4 中的日志目录位置?

sql - Postgres如何使用子句实现计算列

SQL:从按最大年份和名称分组的表中选择 id

SQL 查询在 SQL Server 中有效,在 Excel 中失败(Microsoft 查询)

sql - 将数据迁移到同一文件组中的其他文件对空文件的性能影响

sql - 从 SQL Server 中的 JSON 文本中提取值

SQL获取满足提款标准的未偿余额总额

java - 使用 PostgreSQL 时 isReadOnly JDBC 参数的行为是什么?