在 RDS PostgreSQL 9.6 中创建只读用户时遇到问题。我正在执行以下 SQL 命令:
---- ###### CREATE ROLE ################
CREATE ROLE readonlyrole_dev;
-- Grant access to existing tables
GRANT USAGE ON SCHEMA public TO readonlyrole_dev;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO readonlyrole_dev;
-- set the privileges that will be applied to objects created in the future.
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO readonlyrole_dev;
CREATE USER readonly_dev WITH PASSWORD 'welcome1';
GRANT readonlyrole_dev TO readonly_dev;
当我以readonly_dev
用户身份登录时,默认情况下它有权创建新表,但我不想这样做。我只想保留readonly_dev
一个只读用户。
注意:要撤销我正在执行的用户的访问权限
REVOKE CREATE ON SCHEMA public FROM PUBLIC;
这也撤销了所有旧用户的创建对象权限。我只想撤销新创建用户的创建权限。
我怎样才能做到这一点?