首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >创建具有对给定方案的访问权限的aws redshift用户,包括删除表

创建具有对给定方案的访问权限的aws redshift用户,包括删除表
EN

Stack Overflow用户
提问于 2018-10-01 21:09:33
回答 1查看 1.4K关注 0票数 1

我想通过创建两个新用户并授予他们对相关模式的访问权限,来分离对redshift中的两个现有数据模式(已经创建了表)的访问。

因此,user_1应该只能访问schema_1,而user_2应该只能访问schema_2

通过access,我的意思是用户应该能够从所有当前表(无论是谁创建的)中执行SELECT, INSERT, UPDATE, DELETE, DROP操作,并在其模式上CREATE新表。

我找到了以下语句,用于创建新用户并为其提供特定的访问类型:

创建新用户:

 CREATE USER user_1 WITH PASSWORD 'password_1';

授予给定架构的用法:

 GRANT USAGE ON SCHEMA "schema_1" TO user_1;

分配权限:

 GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA "schema_1" TO user_1;

Alter Default Privileges以维护对新表的权限

 ALTER DEFAULT PRIVILEGES IN SCHEMA "schema_1" GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO user_1;

documentation中,它显示了如何添加除DROP表之外的所有必需权限。在测试这一点时,它使用ERROR: must be owner of relation table_to_drop出错。

或者,我尝试授予所有特权,如下所示...

 GRANT ALL TABLES IN SCHEMA "schema_1" TO user_1;

...but这不会覆盖这样的要求,即它必须是所删除的表的所有者才能删除它。

因此问题是,是否可以将用户限制为具有上述访问权限的给定模式?

EN

回答 1

Stack Overflow用户

发布于 2019-04-24 03:05:35

只有表的所有者、架构所有者或超级用户才能删除表。因此,如果您希望user_1能够在各自的模式中删除表,那么它们应该是schema_1的所有者,而user_2应该是schema_2的所有者。

我假设user_1和user_2不是超级用户,或者这个问题没有意义。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52591903

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档