PostgreSQL创建只读账号

环境说明

部署环境:linux服务器docker容器部署
数据库:PostgreSQL

成果

只读账号/密码:read_only/xxx@123
授权可读库:xxx、xxxdata

操作过程

#进入PostgreSQL容器(如果你没有用docker容器忽略这一步就可以了)
docker exec -it pg1331 bash
#连接到PostgreSQL数据库
psql -U postgres -h localhost
#创建只读用户
CREATE USER read_only WITH PASSWORD 'xxx@123';

授予只读权限

-- 连接到xxx数据库
\c xxx
-- 授予对xxx数据库的只读权限
GRANT CONNECT ON DATABASE xxx TO read_only;
GRANT USAGE ON SCHEMA public TO read_only;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO read_only;

-- 连接到xxxdata数据库
\c xxxdata
-- 授予对xxxdata数据库的只读权限
GRANT CONNECT ON DATABASE xxxdata TO read_only;
GRANT USAGE ON SCHEMA public TO read_only;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO read_only;

验证测试

#退出psql和容器
\q
exit
#测试只读账号
psql -U read_only -h localhost -d xxx
#插入测试
INSERT INTO tiles (column1, column2, column3) VALUES (value1, value2, value3);

在这里插入图片描述
推荐文章,可下载运维资料包:全网最全的Linux常用命令汇总【超全面!一千多页PDF!】收藏这一篇就够了!

你可能感兴趣的:(数据库,postgresql,数据库)