【发布时间】:2018-12-21 15:56:32
【问题描述】:
我希望所有开发人员都能够使用彼此的代码。当一个人创建一张表时,其他人应该能够直接查询它而无需授予权限。
我认为实现这一点的方法是创建一个角色role_developers,让所有开发人员成为该角色的成员,然后这样做:
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL PRIVILEGES ON TABLES TO role_developer;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL PRIVILEGES ON SEQUENCES TO role_developer;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL PRIVILEGES ON FUNCTIONS TO role_developer;
我的期望是,如上所述设置这些默认权限意味着公共架构中此类对象的每个新实例都将被分配给属于该角色成员的每个人。
但是,即使这样做(以我的个人用户帐户登录,也是role_developer 的成员),我发现在我创建新表后,我的同事无法@987654324 @来自它。
所以很明显我错过了一些东西。尽管我是一位经验丰富的 SQL Server 开发人员,但我是 pgsql 的新手,这显然影响了我的观点。
【问题讨论】:
-
我会猜到你所做的是正确的,听到它不起作用我很惊讶。作为一种变通方法,每当大家创建一个新对象时,是否可以将其所有者分配给 role_developer?
alter table my_new_table owner to role_Developer
标签: postgresql database-permissions