我之前阅读了以下问题:Grant privileges on future tables in PostgreSQL?。
但如果我以rbourgeon
(超级用户)身份登录时运行以下查询:
ALTER DEFAULT PRIVILEGES GRANT ALL ON TABLES IN SCHEMA myschema TO username;
我注意到用户username
将仅对将来由我创建的表拥有权限,而不是所有未来的表。
official PostgreSQL documentation就此问题而言:
ALTER DEFAULT PRIVILEGES允许您设置将要的权限 适用于将来创建的对象。 (它没有影响 分配给已存在对象的权限。)目前,只有 表(包括视图),序列和函数的权限可以 被改变了。
您只能更改对象的默认权限 由您自己或您所属的角色创建。 可以全局设置权限(即,对于在中创建的所有对象) 当前数据库),或仅用于在指定模式中创建的对象。 每个模式指定的默认权限将添加到任何模式 全局默认权限适用于特定对象类型。
有解决方法吗?因为许多用户可能在此数据库中创建表。