Postgresql 架构中新表的红移默认权限
我正在使用一个服务在我们的红移仓库中生成表。它在模式中删除表,并每天重新构建它们。我更改了默认权限,授予Postgresql 架构中新表的红移默认权限,postgresql,permissions,amazon-redshift,Postgresql,Permissions,Amazon Redshift,我正在使用一个服务在我们的红移仓库中生成表。它在模式中删除表,并每天重新构建它们。我更改了默认权限,授予user1对它的读取权限,但它不起作用 从红移文档运行此操作: select pg_get_userbyid(d.defacluser) as user, n.nspname as schema, case d.defaclobjtype when 'r' then 'tables' when 'f' then 'functions' end as object_type, array
user1
对它的读取权限,但它不起作用
从红移文档运行此操作:
select pg_get_userbyid(d.defacluser) as user,
n.nspname as schema,
case d.defaclobjtype when 'r' then 'tables' when 'f' then 'functions' end
as object_type,
array_to_string(d.defaclacl, ' + ') as default_privileges
from pg_catalog.pg_default_acl d
left join pg_catalog.pg_namespace n on n.oid = d.defaclnamespace;
为所讨论的架构提供以下行:
+-------------+------------------+-------------+---------------------+
| user | schema | object_type | default_privileges |
+-------------+------------------+-------------+---------------------+
| mysuperuser | schemainquestion | tables | user1=r/mysuperuser |
+-------------+------------------+-------------+---------------------+
这是我运行以更改权限的命令:
ALTER DEFAULT PRIVILEGES IN SCHEMA schemainquestion GRANT SELECT ON TABLES to user1;
我使用
has_schema_privilege
验证了user1
对架构具有用法
权限。您必须以创建表的用户身份运行ALTER DEFAULT PRIVILEGES
语句,或者为该用户添加FOR ROLE
子句