我在 PostgreSQL 中有 user1 和 user2 用户。我在 PostgreSQL 中创建了一个数据库和一个名为 data
的方案。
在数据库中,我执行了以下语句:
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 中选择 *。
有什么方法可以创建表(未来)并授予用户 1 和用户 2 的访问权限,而不仅仅是表的所有者?
我目前使用的是 PostgreSQL 13。
答案 0 :(得分:2)
您编写 ALTER DEFAULT PRIVILEGES
语句的方式,它适用于运行该语句的用户创建的表。
要更改由 user1
创建的表的默认权限,请运行
ALTER DEFAULT PRIVILEGES FOR ROLE user1 IN SCHEMA data GRANT ALL ON TABLES TO user2;
答案 1 :(得分:-1)
您可能需要在使用 user2 凭据从 **data.**table1 中选择 * 之前指定架构。