创建多个用户,互相拥有所有权限relations/objects
Create multiple users, to have all privileges on each others relations/objects
我使用 postgres 用户登录(顺便说一句,这不是超级用户,数据库托管在 google 云上)。
我需要创建多个用户,并且所有用户都可以访问彼此的对象
因此,我使用 postgres 用户创建了 2 个用户,例如:
CREATE USER postgres_subuser1 PASSWORD 'some_password';
GRANT postgres TO postgres_subuser1;
CREATE USER postgres_subuser2 PASSWORD 'some_password';
GRANT postgres TO postgres_subuser2;
然后我使用“postgres_subuser1”登录并创建了 table table1
然后我用“postgres_subuser2”登录,并尝试插入 table1
,但错误
permission denied for table table1
出现
当我尝试使用“postgres”用户插入时,甚至会发生这种情况,只有 table 所有者“postgres_subuser1”可以插入 table。
问题:如何管理当前用户创建的所有用户对彼此的对象拥有所有权限?
您可以alter the default privileges为这些用户创建的对象授予彼此访问权限:
ALTER DEFAULT PRIVILEGES FOR ROLE postgres_subuser1 GRANT ALL PRIVILEGES ON TABLES TO postgres_subuser2;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres_subuser2 GRANT ALL PRIVILEGES ON TABLES TO postgres_subuser1;
此外,我认为您的 GRANT postgres TO postgres_subuser2;
倒退了,您肯定是要授予 postgres
用户更改为 postgres_subuser2
角色的权限,而不是相反?
我使用 postgres 用户登录(顺便说一句,这不是超级用户,数据库托管在 google 云上)。
我需要创建多个用户,并且所有用户都可以访问彼此的对象
因此,我使用 postgres 用户创建了 2 个用户,例如:
CREATE USER postgres_subuser1 PASSWORD 'some_password';
GRANT postgres TO postgres_subuser1;
CREATE USER postgres_subuser2 PASSWORD 'some_password';
GRANT postgres TO postgres_subuser2;
然后我使用“postgres_subuser1”登录并创建了 table table1
然后我用“postgres_subuser2”登录,并尝试插入 table1
,但错误
permission denied for table table1
出现
当我尝试使用“postgres”用户插入时,甚至会发生这种情况,只有 table 所有者“postgres_subuser1”可以插入 table。
问题:如何管理当前用户创建的所有用户对彼此的对象拥有所有权限?
您可以alter the default privileges为这些用户创建的对象授予彼此访问权限:
ALTER DEFAULT PRIVILEGES FOR ROLE postgres_subuser1 GRANT ALL PRIVILEGES ON TABLES TO postgres_subuser2;
ALTER DEFAULT PRIVILEGES FOR ROLE postgres_subuser2 GRANT ALL PRIVILEGES ON TABLES TO postgres_subuser1;
此外,我认为您的 GRANT postgres TO postgres_subuser2;
倒退了,您肯定是要授予 postgres
用户更改为 postgres_subuser2
角色的权限,而不是相反?