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;
相关推荐
isNotNullX7 分钟前
怎么理解ETL增量抽取?
数据库·数据仓库·etl·企业数字化
谅望者11 分钟前
数据分析笔记14:Python文件操作
大数据·数据库·笔记·python·数据挖掘·数据分析
l1t16 分钟前
调用python函数的不同方法效率对比测试
开发语言·数据库·python·sql·duckdb
honortech21 分钟前
MySQL 8 连接报错:Public Key Retrieval is not allowed
数据库·mysql
q***829123 分钟前
MySQL--》如何通过选择合适的存储引擎提高查询效率?
数据库·mysql·adb
q***965826 分钟前
MySql-9.1.0安装详细教程(保姆级)
数据库·mysql
2501_9411114028 分钟前
使用Scrapy框架构建分布式爬虫
jvm·数据库·python
倔强的石头_35 分钟前
电科金仓在医院怎么用?从迁移到跑稳,聊点实在的
数据库
i***68321 小时前
PostgreSQL 中进行数据导入和导出
大数据·数据库·postgresql
z***75151 小时前
【SQL技术】不同数据库引擎 SQL 优化方案剖析
数据库·sql