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;
相关推荐
识君啊4 分钟前
中小厂数据库事务高频面试题
java·数据库·mysql·隔离级别·数据库事务·acid
2301_816660218 分钟前
Bootstrap框架的最小宽度限制是多少
jvm·数据库·python
OtIo TALL13 分钟前
SQL-触发器(trigger)的详解以及代码演示
服务器·数据库·sql
lwx5728017 分钟前
MySQL 数据库自动化备份脚本:从入门到生产实践
数据库·后端
abc123456sdggfd34 分钟前
HTML5中Vuex持久化插件中WebStorage的底层配置
jvm·数据库·python
pele37 分钟前
Go语言如何发GET请求_Go语言HTTP GET请求教程【总结】
jvm·数据库·python
weixin_5806140037 分钟前
Go 语言中 go install 命令的正确用法与常见误区详解
jvm·数据库·python
qq_6543669838 分钟前
Bootstrap 5移除jQuery依赖 Bootstrap 5如何不使用jQuery
jvm·数据库·python
m0_6765443840 分钟前
CSS如何实现元素悬浮在页面底部_利用fixed定位与底部间距
jvm·数据库·python