我需要在Redshift集群数据库中创建一个只读用户账户。一旦用户账户被创建,该用户就不能在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)。而不是所有数据库用户。例如,我需要创建两个用户。第一个是只读的。第二个是读写的。我应该能够从其中一个用户中撤销CREATE权限。而不是从所有用户中撤销。
如果我有错误,请指导我。
再次感谢你。
CREATE GROUP
命令创建一个用户组,并授予仅SELECT和USAGE权限,但无论如何都需要执行REVOKE CREATE ON SCHEMA public FROM PUBLIC;
命令... - eddy85br