首页 > 解决方案 > Postgres(10.3) 权限问题

问题描述

我有一个 PosgresQL(10.3) 数据库。数据库由user_owner创建,结构完整但没有行数据。

我想远程访问数据库。使用 user_owner 我可以毫无问题地远程访问数据库。

但是,我创建了一个辅助用户 user_remote。我想使用这个用户,而不是 user_owner,因为我会给他临时远程访问权限,而 user_owner 用于后端代码。

对于这个用户,我给予特权:

 GRANT ALL PRIVILEGES ON DATABASE name_db TO remote_user;
 GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO remote_user;

当我尝试使用 user_remote, remote 连接时,我可以连接到数据库,但如果我尝试执行其他操作,例如 SELECT,我会收到错误消息:

[42501] ERROR: permission denied for relation table_name

如果我连接数据库并赋予表权限,则:

GRANT ALL ON table_name TO user_remote;

作品。

但是,我有很多表,以及我想要实现的目标:

1)通过一个/几个步骤授予对所有表的 user_remote 访问权限,而不是逐个表 2)我不希望 user_remote 拥有所有权限,而只是进行行操作(删除、更新、插入)

标签: postgresqlpostgresql-9.4

解决方案


推荐阅读