首页 > 解决方案 > 在 Postgresql 中向用户授予权限从不授予权限

问题描述

我正在尝试向 PostgreSQL 10.12 中的新用户授予对数据库的访问权限。对于上下文,我使用的是 Ubuntu 18.04。我用这段代码创建了数据库:

CREATE DATABASE jiradb WITH ENCODING 'UNICODE' LC_COLLATE 'C' LC_CTYPE 'C' TEMPLATE template0;

用户获得了使用以下代码的访问权限:

GRANT ALL PRIVILEGES ON DATABASE

每当我输入“\z”时,我看到的都是这样的:

Access privileges
 Schema | Name | Type | Access privileges | Column privileges | Policies
--------+------+------+-------------------+-------------------+----------
(0 rows)}

我想看到的是这个用户“jiradbuser”拥有对数据库“jiradb”的所有访问权限。我检查了 PostgreSQL 的网站,没有任何帮助。我怎样才能给这个用户适当的访问权限?

标签: postgresqlubuntujiraubuntu-18.04postgresql-10

解决方案


命令

GRANT { { CREATE | CONNECT | TEMPORARY | TEMP } [, ...] | ALL [ PRIVILEGES ] }
ON DATABASE database_name [, ...]
TO role_specification [, ...] [ WITH GRANT OPTION ]

授予对数据库的访问权限{ CREATE | CONNECT | TEMPORARY | TEMP }

你会看到 meta-command 的权限

\l

元命令

 \z

是查看表视图、序列的权限,换句话说,是不同类型的对象(数据库和表视图、序列)

您将看到表格视图,使用命令赋予的序列权限

GRANT { { SELECT | INSERT | UPDATE | DELETE | TRUNCATE | REFERENCES | TRIGGER }
[, ...] | ALL [ PRIVILEGES ] }
ON { [ TABLE ] table_name [, ...]
     | ALL TABLES IN SCHEMA schema_name [, ...] }
TO role_specification [, ...] [ WITH GRANT OPTION ]

在这里你可以使用

\z 

推荐阅读