Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 红移架构的只读权限_Sql_Postgresql_Permissions_Amazon Redshift_Database Administration - Fatal编程技术网

Sql 红移架构的只读权限

Sql 红移架构的只读权限,sql,postgresql,permissions,amazon-redshift,database-administration,Sql,Postgresql,Permissions,Amazon Redshift,Database Administration,我想为红移中的组授予只读权限。 我使用了这个命令 GRANT USAGE ON SCHEMA myschema TO GROUP my_group; GRANT SELECT ON ALL TABLES IN SCHEMA myschema TO GROUP my_group; ALTER DEFAULT PRIVILEGES IN SCHEMA myschema GRANT SELECT ON TABLES TO GROUP my_group; REVOKE CREATE ON SCHEM

我想为红移中的组授予只读权限。 我使用了这个命令

GRANT USAGE ON SCHEMA myschema TO GROUP my_group; 
GRANT SELECT ON ALL TABLES IN SCHEMA myschema TO GROUP my_group; 
ALTER DEFAULT PRIVILEGES IN SCHEMA myschema GRANT SELECT ON TABLES TO GROUP my_group; REVOKE CREATE ON SCHEMA myschema FROM GROUP my_group;"
这是可行的,但如果创建了新表,那么用户就没有这些表的权限

根据美国焊接学会

在SCHEMA\u名称中

可选。如果出现IN SCHEMA子句,则指定 默认权限应用于在中创建的新对象 明确规定 架构名称。在本例中,是目标的用户或用户组 的ALTER DEFAULT权限必须具有的CREATE权限 指定的架构。特定于架构的默认特权为 已添加到现有全局默认权限。默认情况下,默认情况下 特权全局应用于整个数据库


这是否意味着我必须向该组授予创建权限?

假设您使用user\u x创建表,然后您要向groupmy\u group授予读取权限,这是我通常用于实现该目的的命令:

ALTER DEFAULT PRIVILEGES FOR USER user_x IN SCHEMA myschema GRANT SELECT ON TABLES TO GROUP my_group;

我希望,如果有任何用户创建表,那么它应该是可读的。不幸的是,我从来没有设法让它为所有用户工作。在我们的系统中,我们知道特定模式中的表是由etl_用户创建的,因此我们专门知道谁在模式中创建表。