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);
最后给大家分享一下我收集的DeepSeek学习资料:https://pan.quark.cn/s/4af1c3212a42