Amazon s3 创建具有红移视图访问权限的用户
我将数据从mysql ec2实例拉入s3存储桶,然后用红移创建视图。我想创建只能在红移中查询和查看特定视图的数据库用户。下面是我用来创建用户、查看和授予访问权限的示例代码。我遇到的问题是,我还必须授予对创建视图的基础架构的访问权,这意味着用户可以查看和查询该架构中的表。用户还可以看到数据库中的其他模式,甚至是他们无法查询的模式。有没有一种方法可以只向用户授予特定的视图,并使其无法查看他们无权访问的其他模式 代码: 重述:Amazon s3 创建具有红移视图访问权限的用户,amazon-s3,amazon-redshift,aws-glue-data-catalog,aws-data-pipeline,Amazon S3,Amazon Redshift,Aws Glue Data Catalog,Aws Data Pipeline,我将数据从mysql ec2实例拉入s3存储桶,然后用红移创建视图。我想创建只能在红移中查询和查看特定视图的数据库用户。下面是我用来创建用户、查看和授予访问权限的示例代码。我遇到的问题是,我还必须授予对创建视图的基础架构的访问权,这意味着用户可以查看和查询该架构中的表。用户还可以看到数据库中的其他模式,甚至是他们无法查询的模式。有没有一种方法可以只向用户授予特定的视图,并使其无法查看他们无权访问的其他模式 代码: 重述: 架构user341-包含源表,用户不能从此架构中的表中进行选择。您还希望
- 架构
-包含源表,用户不能从此架构中的表中进行选择。您还希望从用户处隐藏它user341
-包含用户应该能够从中选择的视图李>tst\U用户\U架构
GRANT
语句,您不必要地向用户授予了SELECT
对模式user341中的所有表的权限。要使视图正常工作,您只需在该架构上授予使用权
所以REVOKE
这些权限,用户应该不能选择
REVOKE SELECT ON ALL TABLES IN SCHEMA user341 FROM tstuser;
提示:要轻松测试权限,您可以使用指令以tstuser
的身份启动会话,然后测试哪些语句是允许的,哪些语句不是
SET SESSION AUTHORIZATION tstuser
关于模式可见性——不幸的是,没有办法隐藏或禁止用户查看所有模式中的所有表和列。人们只能限制对数据的访问 重述一下:
- 架构
user341
-包含源表,用户不能从此架构中的表中进行选择。您还希望从用户处隐藏它
tst\U用户\U架构
-包含用户应该能够从中选择的视图李>
查看您的GRANT
语句,您不必要地向用户授予了SELECT
对模式user341中的所有表的权限。要使视图正常工作,您只需在该架构上授予使用权
所以REVOKE
这些权限,用户应该不能选择
REVOKE SELECT ON ALL TABLES IN SCHEMA user341 FROM tstuser;
提示:要轻松测试权限,您可以使用指令以tstuser
的身份启动会话,然后测试哪些语句是允许的,哪些语句不是
SET SESSION AUTHORIZATION tstuser
关于模式可见性——不幸的是,没有办法隐藏或禁止用户查看所有模式中的所有表和列。人们只能限制对数据的访问 它不适用于红移光谱的视图。From doc:您还应该确保后期绑定视图的所有者对引用的对象具有选择权限。很好,这对我有用!它不适用于红移光谱的视图。From doc:您还应该确保后期绑定视图的所有者对引用的对象具有选择权限。很好,这对我有用!