【问题标题】:How to create READ ONLY user in redshift如何在 redshift 中创建只读用户
【发布时间】:2014-02-05 22:10:36
【问题描述】:

我需要在 redshift cluster db 中创建只读用户帐户。创建用户帐户后,该用户将无法在 PUBLIC 中创建任何对象。但他们可以选择任何对象。由于 CREATE & USAGE 权限默认授予所有用户,请指导我如何限制 PUBlic SCHEMA 中的对象创建?

版本:

PostgreSQL 8.0.2 on i686-pc-linux-gnu, compiled by GCC gcc (GCC) 3.4.2 20041017 (Red Hat 3.4.2-6.fc3), Redshift 1.0.735

谢谢你

你好,

我注意到了你的回复。是的,它有效。但我有一个澄清。

如果您在下面执行并在数据库中进一步创建任何用户(现有用户也是),那么他们将无法在 PUBLIC 模式中创建对象。

postgres=# REVOKE CREATE ON SCHEMA public FROM PUBLIC;
REVOKE

所以,如果我重新设置(即下面),那么它适用于所有用户并且所有用户都能够在数据库中创建对象。

postgres=# grant create on schema public to public;
GRANT

我的意图是,我需要限制某些用户的对象创建 (CREATE priv)。不适用于所有数据库用户。例如我需要创建 2 个用户。第一个是只读的。第二个是读写。我应该能够从中撤销 CREATE priv。不是来自所有人。

如果我错了,你能指导我吗?

再次感谢您

【问题讨论】:

  • 您可以使用CREATE GROUP 命令创建一组用户并仅授予SELECT 和USAGE 权限,但无论哪种方式您都需要执行REVOKE CREATE ON SCHEMA public FROM PUBLIC; 命令...

标签: postgresql amazon-redshift


【解决方案1】:

默认情况下,每个用户都可以访问和创建“公共”架构上的表,因为“PUBLIC”(所有用户)拥有“公共”架构上的所有权限。您可以使用以下命令撤销用户对“PUBLIC”的 CREATE 权限。

REVOKE CREATE ON SCHEMA public FROM PUBLIC;
  • “public”:架构名称
  • “PUBLIC”:“所有用户”的标识符

运行上述命令后,您需要运行允许用户访问“PUBLIC”模式的 GRANT 命令。

GRANT CREATE ON SCHEMA public TO {user-name};

此文档对此进行了解释。

【讨论】:

  • 您好,Masashi,感谢您之前的邮件。是的,我能够从 PUBLIC(所有用户)撤消 CREATE ON 公共架构。但是我需要专门从一个用户帐户中撤消,而不是从所有用户(公共)中撤消。请指导我。
猜你喜欢
  • 1970-01-01
  • 2010-10-20
  • 2011-02-16
  • 2022-06-29
  • 2011-11-22
  • 2021-06-03
相关资源
最近更新 更多