我在 PostgreSQL 8.3 中向另一个用户授予权限时遇到问题。虽然 GRANT 命令没有给出错误,但权限没有显示。我需要“冲洗”它们吗?

sirprize=# CREATE DATABASE testdb;
CREATE DATABASE
sirprize=# GRANT ALL PRIVILEGES ON DATABASE testdb TO testuser;
GRANT
sirprize=# \c testdb
You are now connected to database "testdb".
testdb=# \z
 Access privileges for database "testdb"
 Schema | Name | Type | Access privileges
--------+------+------+-------------------
(0 rows)

testdb=#
有帮助吗?

解决方案

\z 显示数据库中包含的对象的表、视图和序列权限。它不显示数据库本身的权限。如果您在“testdb”中创建表或其他对象,它将显示在 \z的输出。

您可以使用以下命令查看系统上存在哪些数据库 \l (或者 \l+ 了解更多信息)。

第 9.22 节。PostgreSQL 8.3 手册 有关如何以编程方式确定用户对给定数据库存在哪些权限的信息。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top