为Postgresql上的Select Only创建用户。限制;“更改表格”;

为Postgresql上的Select Only创建用户。限制;“更改表格”;,postgresql,Postgresql,我正在使用fallowing脚本创建用户 CREATE ROLE readonly LOGIN PASSWORD 'thePwd'; -- Existing objects GRANT CONNECT ON DATABASE the_db TO readonly; GRANT USAGE ON SCHEMA public TO readonly; GRANT SELECT ON ALL TABLES IN SCHEMA public TO readonly; GRANT SELECT

我正在使用fallowing脚本创建用户

CREATE ROLE readonly LOGIN PASSWORD 'thePwd';

-- Existing objects

GRANT CONNECT ON DATABASE the_db TO readonly;

GRANT USAGE ON SCHEMA public TO readonly;

GRANT SELECT ON ALL TABLES IN SCHEMA public TO readonly;

GRANT SELECT ON ALL SEQUENCES IN SCHEMA public TO readonly;

GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA public TO readonly;
创建用户和角色后;“只读”用户具有“选择”权限。没有删除或截断权限。但“只读”用户有权使用“ALTERTABLE”命令

如何限制特定用户的“更改表”权限


有一个简单的例子吗?

解决方案如下脚本所示

create user dummy_user with nosuperuser encrypted password 'dummy_password';

GRANT CONNECT ON DATABASE the_db TO dummy_user;

GRANT USAGE ON SCHEMA public TO dummy_user;

GRANT SELECT ON ALL TABLES IN SCHEMA public TO dummy_user;

GRANT SELECT ON ALL SEQUENCES IN SCHEMA public TO dummy_user;

GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA public TO dummy_user;

根据显示的命令,它不应该有。是否有示例脚本?在
授予架构上的用法之前是否连接到\u db…
?请在受影响的表上显示有效但不应该的命令和
\dp tablename
的输出我使用了上述SQL脚本,一步一步。只读用户通过SELECT脚本(无删除、无截断)工作得非常好;“ALTER TABLE SAMPLE ADD/DROP Column_SAMPLE”除外