首页 > 解决方案 > PostgreSQL 授予对表的访问权限

问题描述

我在 PostgreSQL 中有 user1 和 user2 用户。我创建了一个数据库和一个data在 PostgreSQL 中调用的方案。

在数据库中,我执行了以下语句:

ALTER DEFAULT PRIVILEGES IN SCHEMA data GRANT ALL ON TABLES TO user1;
ALTER DEFAULT PRIVILEGES IN SCHEMA data GRANT ALL ON TABLES TO user2;

我以 user1 身份登录并在数据模式中创建表,然后以 user2 身份登录,但无法使用 user2 凭据从 table1 中选择 *。

有什么方法可以创建表(未来)并授予对 user1 和 user2 的访问权限,而不仅仅是表的所有者?

我目前正在使用 PostgreSQL 13。

标签: postgresql

解决方案


您编写ALTER DEFAULT PRIVILEGES语句的方式适用于运行该语句的用户创建的表

要更改由 创建的表的默认权限user1,请运行

ALTER DEFAULT PRIVILEGES FOR ROLE user1 IN SCHEMA data GRANT ALL ON TABLES TO user2;

推荐阅读