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;
相关推荐
l1t1 分钟前
DuckDB对group by cube / rollup / groupping sets查询的优化
数据库·duckdb
l1t1 小时前
DeepSeek总结的MariaDB 的 DuckDB 存储引擎
数据库·mariadb
tiancaijiben1 小时前
阿里云VMware服务完全对接指南:从环境准备到混合云生产级应用
数据库
Curvatureflight2 小时前
MySQL 深分页越来越慢?从 LIMIT OFFSET 改成游标分页
数据库·oracle
XZ-0700012 小时前
MySQL事务
数据库·mysql·oracle
tiancaijiben2 小时前
阿里云函数计算FC如何实现网站的定时任务与自动化
数据库·oracle·dba
xfhuangfu2 小时前
Oracle 19c 多租户体系架构介绍
数据库·oracle·架构
java1234_小锋2 小时前
请描述 Spring Boot 的启动流程,包括 SpringApplication 的初始化和 run 方法的核心步骤。
java·数据库·spring boot
qq_谁赞成_谁反对2 小时前
甲方IT的成长之路--nginx实战--2604
服务器·数据库·nginx