我在向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
显示数据库中包含的对象的表、 View 和序列权限。它不显示对数据库本身的权限。如果您在'testdb'中创建表或其他对象,则该表或其他对象将显示在\z
的输出中。
您可以使用 \l
(或 \l+
了解更多信息)查看系统上存在哪些数据库。
有关如何以编程方式确定给定数据库上的用户存在哪些权限的信息,请参阅 section 9.22. of the PostgreSQL 8.3 manual。
关于PostgreSQL 8.3 权限未更新 - 错误用法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/75696/