PostgreSQL创建数据库、数据库管理员用户、该库的只读用户

1.创建用户:

复制代码
create user pgdbAdmin with password "Pgdb_15432";

2.创建数据库:

复制代码
create database pgdb owner pgdbAdmin;

3.创建SCHEMA;

复制代码
create schema pgdbAdmin;

4.赋予数据库管理员用户权限:

复制代码
grant all privileges on database pgdb to pgdbAdmin;
grant usage on schema public,pgdbAdmin to pgdbAdmin;
grant all privileges on all tables in schema public,pgdbAdmin to pgdbAdmin;
grant all privileges on all sequences in schema public,pgdbAdmin to pgdbAdmin;
grant select,insert,update,delete on all tables in schema public,pgdbAdmin to pgdbAdmin;
grant all on schema public,pgdbAdmin to pgdbAdmin;

5.赋予数据库其他用户权限(只读):

复制代码
create user pgdbRead with password "Pgdb_15432" 
alter user pgdbRead set default_transaction_read_only = on;
grant CONNECT ON DATABASE pgdb to pgdbRead;
grant USAGE ON SCHEMA public,pgdbAdmin TO pgdbRead;

6.赋予schema下所有表的只读权限

复制代码
grant SELECT ON all tables in schema public,pgdbAdmin to pgdbRead;

7.修改用户属性,继承该schema下的只读权限

复制代码
alter default privileges in schema public,pgdbAdmin grant select on tables to pgdbRead;

8.修改默认的SEARCH_PATH:

复制代码
alter role pgdbRead set search_path = "$user",pgdbAdmin,public;
相关推荐
华章酱16 分钟前
MySQL幻读是怎么出现的
数据库·mysql·幻读
浅念-39 分钟前
Redis基础详解:单线程模型、String与Hash数据结构
服务器·数据库·redis·sql·mysql·nosql数据库·nosql
updayday8541 小时前
离职域账号状态变更与Ping64操作记录核对
大数据·网络·数据库·安全·智能路由器
Nturmoils1 小时前
只恢复一张表,别把整个库都还回去
数据库
龙腾AI白云2 小时前
大语言模型:从语言理解到通用智能的跃迁
数据库·人工智能·机器学习·知识图谱
SelectDB2 小时前
快手基于 Apache Doris 千亿多模态检索的实践
大数据·数据库·数据分析
SelectDB2 小时前
StarRocks 迁移至 Apache Doris 完整指南:三步完成结构、数据与业务平滑切换
大数据·数据库·数据分析
这个DBA有点耶2 小时前
InnoDB索引组织表下,复合主键和自增主键的物理存储差异与选型对比
数据库·mysql·架构
其实防守也摸鱼3 小时前
常见安全架构中 Shiro 的认证确认机制解析
运维·服务器·数据库·windows·github
TDengine (老段)4 小时前
TDengine 常见问题 TOP7
大数据·数据库·时序数据库·常见问题·tdengine·涛思数据