PostgreSQL搭建及权限配置

PostgreSQL(七)权限管理 3、对超级用户 postgres不做权限检查,其它用户走ACL(Access Control list);2、schema:PG的一个用户可以有多个schema,但一个schema只能属于一个用户;(可用此预防表被误删除)1、实例权限:控制部分用户、主机是否允许登录、访问数据库(白名单&黑名单);1、每个数据库对象都有一个所有者,默认情况下,所有者拥有该对象的所有权限;4、对于数据库对象,开始只有所有者和超级用户可以做任何操作,其它走ACL;3、object:表、视图、索引等对象的增删改查的权限。 阅读详情

目录

部署

docker镜像

拉取镜像

创建数据目录

启动服务

权限

常用操作命令

创建用户

示例

其他命令


部署

docker镜像

Docker Hubhttps://hub.docker.com/_/postgres

https://github.com/docker-library/docs/blob/master/postgres/README.mdhttps://github.com/docker-library/docs/blob/master/postgres/README.md

拉取镜像

docker pull postgres

创建数据目录

mkdir -p /opt/tank/data/postgres/data

启动服务

docker run  -d --name postgres14 \
	--network=kong-net \
	-p 5432:5432 \
	-v /opt/tank/data/postgres/data:/var/lib/postgresql/data \
	-e POSTGRES_PASSWORD=aj9m8ja***u8SI8ga \
	postgres:latest

端口:-p 5432:5432 
数据目录挂载: -v /opt/tank/data/postgres/data:/var/lib/postgresql/data 
密码:-e POSTGRES_PASSWORD=aj9m8ja**SI8ga 

端口:5432

库: postgres

用户名: postgres

密码: aj9m8ja023ju8SI8ga

权限

中文文档:http://www.postgres.cn/v2/document

官网文档:PostgreSQL: Documentation

常用操作命令

以下命令参考应用自:PostgreSQL学习之【用户权限管理】说明 - jyzhou - 博客园

还可以参考:PostgreSQL PRIVILEGES(权限) | 菜鸟教程

创建用户

CREATE USER/ROLE name [ [ WITH ] option [ ... ] ]  : 关键词 USER,ROLE; name 用户或角色名; 

where option can be:

      SUPERUSER | NOSUPERUSER      :超级权限,拥有所有权限,默认nosuperuser。
    | CREATEDB | NOCREATEDB        :建库权限,默认nocreatedb。
    | CREATEROLE | NOCREATEROLE    :建角色权限,拥有创建、修改、删除角色,默认nocreaterole。
    | INHERIT | NOINHERIT          :继承权限,可以把除superuser权限继承给其他用户/角色,默认inherit。
    | LOGIN | NOLOGIN              :登录权限,作为连接的用户,默认nologin,除非是create user(默认登录)。
    | REPLICATION | NOREPLICATION  :复制权限,用于物理或则逻辑复制(复制和删除slots),默认是noreplication。
    | BYPASSRLS | NOBYPASSRLS      :安全策略RLS权限,默认nobypassrls。
    | CONNECTION LIMIT connlimit   :限制用户并发数,默认-1,不限制。正常连接会受限制,后台连接和prepared事务不受限制。
    | [ ENCRYPTED ] PASSWORD 'password' | PASSWORD NULL :设置密码,密码仅用于有login属性的用户,不使用密码身份验证,则可以省略此选项。可以选择将空密码显式写为PASSWORD NULL。                                                         加密方法由配置参数password_encryption确定,密码始终以加密方式存储在系统目录中。
    | VALID UNTIL 'timestamp'      :密码有效期时间,不设置则用不失效。
    | IN ROLE role_name [, ...]    :新角色将立即添加为新成员。
    | IN GROUP role_name [, ...]   :同上
    | ROLE role_name [, ...]       :ROLE子句列出一个或多个现有角色,这些角色自动添加为新角色的成员。 (这实际上使新角色成为“组”)。
    | ADMIN role_name [, ...]      :与ROLE类似,但命名角色将添加到新角色WITH ADMIN OPTION,使他们有权将此角色的成员资格授予其他人。
    | USER role_name [, ...]       :同上
    | SYSID uid                    :被忽略,但是为向后兼容性而存在。

示例

#创建不需要密码登陆的用户zjy:

postgres=# CREATE ROLE zjy LOGIN;
CREATE ROLE

#创建该用户后,还不能直接登录。需要修改 pg_hba.conf 文件(后面会对该文件进行说明),加入:

①:本地登陆:local   all    all    trust
②:远程登陆:host   all    all    192.168.163.132/32     trust

#创建需要密码登陆的用户zjy1:

postgres=# CREATE USER zjy1 WITH PASSWORD 'zjy1';
CREATE ROLE
和ROLE的区别是:USER带LOGIN属性。也需要修改 pg_hba.conf 文件(后面会对该文件进行说明),加入:
host    all     all     192.168.163.132/32    md5

#创建有时间限制的用户zjy2:

postgres=# CREATE ROLE zjy2 WITH LOGIN PASSWORD 'zjy2' VALID UNTIL '2019-05-30';
CREATE ROLE
和2的处理方法一样,修改 pg_hba.conf 文件,该用户会的密码在给定的时间之后过期不可用。

#创建有创建数据库和管理角色权限的用户admin:

postgres=# CREATE ROLE admin WITH CREATEDB CREATEROLE;
CREATE ROLE
注意:拥有创建数据库,角色的用户,也可以删除和修改这些对象。

#创建具有超级权限的用户:admin
postgres=# CREATE ROLE admin WITH SUPERUSER LOGIN PASSWORD 'admin';
CREATE ROLE

#创建复制账号:repl 

postgres=# CREATE USER repl REPLICATION LOGIN ENCRYPTED PASSWORD 'repl';
CREATE ROLE

其他命令


#创建复制用户
CREATE USER abc REPLICATION LOGIN ENCRYPTED PASSWORD '';
CREATE USER abc REPLICATION LOGIN ENCRYPTED PASSWORD 'abc';
ALTER USER work WITH ENCRYPTED password '';

#创建scheme 角色
CREATE ROLE abc;
CREATE DATABASE abc WITH OWNER abc ENCODING UTF8 TEMPLATE template0;
\c abc

#创建schema
CREATE SCHEMA abc;
ALTER SCHEMA abc OWNER to abc;
revoke create on schema public from public;

创建用户
create user abc with ENCRYPTED password '';
GRANT abc to abc;
ALTER ROLE abc WITH abc;

##创建读写账号
CREATE ROLE abc_rw;
CREATE ROLE abc_rr;

##赋予访问数据库权限,schema权限
grant connect ON DATABASE abc to abc_rw;
GRANT USAGE ON SCHEMA abc TO abc_rw;

##赋予读写权限
grant select,insert,update,delete ON  ALL TABLES IN SCHEMA abc to abc;

赋予序列权限
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA abc to abc;

赋予默认权限
ALTER DEFAULT PRIVILEGES IN SCHEMA abc GRANT select,insert,update,delete ON TABLES TO abc;

赋予序列权限
ALTER DEFAULT PRIVILEGES IN SCHEMA abc GRANT ALL PRIVILEGES ON SEQUENCES TO abc;


#用户对db要有连接权限
grant connect ON DATABASE abc to abc;

#用户要对schema usage 权限,不然要select * from schema_name.table ,不能用搜索路径
GRANT USAGE ON SCHEMA abc TO abc;
grant select ON ALL TABLES IN SCHEMA abc to abc;
ALTER DEFAULT PRIVILEGES IN SCHEMA abc GRANT select ON TABLES TO abc;

create user abc_w with ENCRYPTED password '';
create user abc_r with ENCRYPTED password '';

GRANT abc_rw to abc_w;

GRANT abc_rr to abc_r;

## 库赋所有权
GRANT ALL PRIVILEGES ON DATABASE event_driven TO udp_uat;

## 赋所有表的所有操作权限
grant ALL ON  ALL TABLES IN SCHEMA event_driven to udp_uat;


## 赋SCHEMA所有权限给用户
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA event_driven to udp_uat;

Postgresql + Pgpool 主从及高可用配置 软件版本 服务器:CentOS7 PostgresSql:14 PGPool-II:4.3.1 操作注意事项: 1. 注意目录归属及权限,建议相关目录均使用【chown -R postgres:postgres 目录】执行一次,防止权限问题 2.数据库相关部分只需要配置主库,从库在安装完成后,不需要启动及初始化 3. pgpool的配置在各服务器上一致,都需要操作一遍 4. SSH免密登录配置完成请验证 5. 从库初始化及主库恢复需要配置插槽 6. psql... 阅读详情

相关推荐

基于Ubuntu+PostgreSQL+Zip搭建SonarQube环境

基于Ubuntu+PostgreSQL使用Zip搭建SonarQube环境

TwistedDemonwy的博客 908

Odoo17开发环境搭建避坑指南:从Python配置到PostgreSQL权限设置

本文详细介绍了Odoo17开发环境搭建的全过程,从Python环境配置到PostgreSQL权限设置,提供了避免常见问题的实用技巧和解决方案。特别针对Windows平台,涵盖了开发工具选型、数据库配置、源码部署及性能优化等关键步骤,帮助开发者高效搭建稳定的Odoo17开发环境。

weixin_28235513的博客 264

Sornaqube 与 PostgreSQL代码扫描之Windows本地搭建 基本使用手册

配置环境: java 11 MS-SQL, Oracle, and PostgreSQL.(这里使用的是postgreSQL作为例子, 版本目前支持范围(13, 12, 11, 10 and 9.6 )) Prerequisites and Overview psql -U postgres 进去postgresql(安装postgreSQL) :\l (show databases) :\dt (show tables) \du(显示所有user)

vicxdd的博客 1066

GBase 8c 创建用户/角色语法说明

GBase 8c 数据库创建用户/角色的语法说明: 语法格式如下: CREATE USER/ROLE name [ [ WITH ] option [ ... ] ] 选项: SUPERUSER | NOSUPERUSER :超级权限,拥有所有权限,默认nosuperuser。 | CREATEDB | NOCREATEDB :建库权限,默认nocreatedb。 | CREATEROLE | NOCREATEROLE :建角色权限,拥有创建、修改、删除角色,默认...

qq_41614765的博客 886

PostgreSQL通过pg_basebackup物理备份搭建流复制备库(Streaming Replication Standby)

PostgreSQL流复制是实现高可用性的关键技术。本文详细介绍了使用pg_basebackup搭建异步流复制的步骤:1)在主服务器创建复制用户并配置pg_hba.conf和postgresql.conf;2)在备服务器清空数据目录后执行pg_basebackup基础备份;3)启动备服务器并验证复制状态。关键配置包括设置wal_level=replica、max_wal_senders等参数,以及通过pg_stat_replication视图监控复制状态。文章还提供了故障排查建议,适合需要构建Postgre

liumangtuzi888的博客 1261

PostgreSQL绿色版安装流程详解

htmltable {th, td {th {pre {简介:PostgreSQL(pgsql)是一种开源的对象关系型数据库管理系统,以稳定性和功能强大而著称。本文将指导用户如何安装免安装的pgsql绿色版本,并详细解释了安装过程中可能遇到的问题和解决办法。包括下载绿色版、解压配置、环境变量设置、数据库集群初始化、服务启动、防火墙规则配置、权限和访问控制设置、用户与数据库创建以及错误排查和数据库连接方法。

weixin_42376614的博客 1693

GBase 8c设置密码安全策略

用户密码存储在系统表pg_authid中,为防止用户密码泄露,GBase 8c对用户密码进行加密存储,所采用的加密算法由配置参数password_encryption_type决定。

qq_41614765的博客 974

对称加密中GCM和CBC俩种加密模式的区别

**CBC(Cipher Block Chaining)** 和 **GCM(Galois/Counter Mode)** 是两种常见的对称加密模式。它们的主要区别体现在加密方式、性能和安全性上。

闲人 1107

Postgresql安装、初始化及用户, 角色与权限管理

du: 可以查看所有已存在的用户/角色, 以及它们拥有的权限属性\l: 可以查看所有数据库及其属主和所有拥有权限的用户配置选择一个数据库后,\dt可以查看所有表的属主和相应用户权限select * from information_schema.role_table_grants where grantee = '用户名';可以查看指定用户拥有的所有数据库权限。

wang11876的博客 7077

Balser相机的硬件触发实战:从连线到信号处理

本文详细介绍了Balser相机硬件触发的实战应用,从硬件接线、信号定义到软件配置(Pylon Viewer及API)提供了完整指南。重点阐述了如何利用外部物理电信号实现微秒级精准触发,解决工业场景下的同步与延迟问题,并分享了信号调理、抗干扰等高级实战经验。

y9z0a1b的博客 337

命令行驱动视频剪辑:cutcli与AI自动化工作流实战

在视频内容创作领域,自动化与批量化处理是提升生产效率的关键。传统图形界面工具在应对重复性任务时往往效率低下,而通过命令行接口(CLI)驱动视频生成,则能实现流程的程序化控制。其技术原理在于将视频结构抽象为可编程的指令序列,通过解析命令生成标准化的工程文件。这种模式的核心价值在于将视频制作从手动操作转变为代码驱动,特别适合与AI编程助手集成,实现自然语言到视频草稿的自动转换。应用场景广泛覆盖社交媒体内容批量生产、教育视频自动化生成、数据可视化视频组装等领域。本文以cutcli工具为例,深入解析如何通过命令行与

weixin_42520239的博客 576

PostgreSql 用户及权限管理

ALTER DEFAULT PRIVILEGES 允许设置将被应用于未来要创建的对象的特权(它不会影响分配给已经存在的对象的特权)。当前,只能修改用于模式、表(包括视图和外部表)、序列、函数和类型(包括域)的特权。其中,可设置权限的函数包括聚集函数和过程函数。当这个命令应用于函数时,单词 FUNCTIONS 和 ROUTINES 是等效的。(推荐使用 ROUTINES,因为它是用来囊括函数和过程的一个标准术语。在较早的 PostgreSQL 发行版中,只允许单词 FUNCTIONS。

脑子进水养啥鱼?的博客 1万+

光学设计必知:Ansys Zemax中6种系统孔径类型的适用场景全解析

本文深入解析Ansys Zemax中6种系统孔径类型的适用场景,包括入瞳直径、像方空间F/#、物方空间NA等,帮助光学设计师精准控制光线选择和成像质量。通过实际案例和代码示例,详细讲解各孔径类型的计算原理、参数设置及在显微系统、激光扩束等场景中的优化策略,提升复杂光学系统设计效率。

weixin_29266007的博客 552

如何搭建postgresql,配置连接并实现权限管控

配置安装 连接操作 权限管控 工具使用

不完美中的完美 319

保姆级教程:在RK3588开发板上用MPP库实现H.264硬编码(附完整代码)

本文详细介绍了在RK3588开发板上使用MPP库实现H.264硬编码的全流程,包括环境准备、MPP库编译、编码器初始化与配置、数据输入与编码流程以及高级性能优化技巧。通过实战案例和完整代码,帮助开发者充分利用RK3588的VPU硬件加速能力,提升视频编码效率和质量。

weixin_28716769的博客 414

【路径规划】基于matlab蚁群算法机器人栅格地图最短路径规划【含Matlab源码 4590期】

基于matlab蚁群算法机器人栅格地图最短路径规划 完整代码,包运行;可提供运行操作视频!适合小白!

订阅付费专栏Matlab(奶茶价版),可赠送奶茶价版付费专栏指定代码1份; 1277

PostgreSQL13-CentOS7主从搭建

PostgreSQL13-CentOS7主从搭建

qq_34343623的博客 377

YOLOv11改进 | 引入SFSConv空间频率选择卷积(含SFSC3k2二次创新),空间频率特征协同作用,检测性能全面提升

本文提出在YOLOv11中引入SFSConv空间频率选择卷积模块,通过显式分离和动态融合空间域与频率域特征,解决传统卷积对多尺度目标检测的局限性。SFSConv包含空间频率分离、动态权重融合和协同特征重建三个核心机制,并进一步创新提出SFSC3k2结构,通过双路频率分支增强特征协同作用。该改进显著提升了YOLOv11在遥感、医学等多尺度复杂场景下的检测性能,实验显示在微小目标检测任务中mAP提升5%-10%。代码实现展示了SFSConv模块的核心逻辑及其在PyTorch中的高效实现。

走向CTO的路上... 767

PostgreSQL搭建主从复制集群

trigger_file = '/tmp/trigger_file0''/tmp/trigger_file0'是一个自定义的文件,在后面主从切换的时候能够用得上。s :stream并行复制,数据和wal日志同步复制,如果使用tar格式,预写式日志文件被写入到一个单独的名为pg_wal.tar的文件;f :fetch串行复制,数据复制完,再复制wal日志,如果使用tar格式,预写式日志文件将被写入到base.tar文件。流复制保留最多的xlog数,xlog这个日志是记录的Postgresql的WAL信息。

2402_88627342的博客 1631

【ODX介绍】-4.2-UDS诊断$27服务在ODX-D诊断描述文件中如何描述

共25页精讲:附ODX-D XML:UDS $27 Security服务0x61和0x62 Sub-Function,其它Sub-Function可参照其格式。 目录 1 ODX-D描述一个UDS $27 Security服务Sub-Function的结构 2 标签DIAG-SERVICE描述的内容 2.1 举例:DIAG-SERVICE的XML描述 3 标签REQUEST描述的内容 3.1 举例:REQUEST的XML描述 4 标签POS-RESPONSE描述的内容 4.1 举例:PO..

「汽车电子助手」的博客 1122

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

PostgreSQL逻辑复制搭建

1.什么是逻辑复制: 2.逻辑复制与物理复制(流复制)的区别: 3.搭建流复制: 3.1 修改逻辑主库的postgresql.conf wal_level=logical max_wal_senders=10 max_replication_slots=8 参数简要介绍: wal_level: max_wal_senders:walsender进程的最大数量 max_replication_slots:复制槽的最大数量 3.2 修改逻辑从库的postgresql.conf wal_level=logic

weixin_42009082的博客 844

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

macOS 上使用 Homebrew 安装和配置 PostgreSQL 的详细步骤

默认情况下,PostgreSQL 会创建一个与您当前 macOS 用户名同名的数据库和超级用户,并且没有密码。为了安全和管理方便,建议创建一个专用的应用用户和数据库。这是目前最推荐的方式,因为它管理方便,易于升级和卸载。推荐安装 pgAdmin,这是一个功能强大的开源 PostgreSQL 管理工具。◦ 在 “General” 标签页,输入一个名称(如 “Local PostgreSQL”)。如果显示类似 psql (PostgreSQL) 17.0 的信息,说明安装成功。这表示您已成功连接到数据库。

benxin1234的博客 980

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

如何在 Ubuntu 20.04 上安装 PostgreSQL

参考:https://www.itcoder.tech/posts/how-to-install-postgresql-on-ubuntu-20-04/ PostgreSQL 或者 Postgres 是一个开源的,多用途的关系型数据库管理系统。它有很多高级特性,可以允许你构建容错的环境或者复杂的应用。 在这篇指南中,我们将会讲解如何在 Ubuntu 20.04 上安装 PostgreSQL 数据库服务器,并且探索 PostgreSQL 数据库管理的基础操作。 一、前提条件 想要安装软件包,以 r

ycs_0405的专栏 755

centos7搭建postgresql主从(主备)架构

本篇介绍如何在centos7系统搭建一个postgresql主备集群实现最近的HA(高可用)架构。后续更高级的HA模式都是基于这个最基本的主备搭建。

老徐的博客只有干货 3094

Postgresql12主从配置及切换

一、主从安装 1、依据“Centos7安装最新版Postgresql”操作,注意个别细节选择主从配置 2、注意:从服务器只能查询,不能写入 3、主库IP=103,备库IP=104 二、主服务器 1、添加pg用于同步的用户名 su - postgres psql # 创建具有复制流操作的用户:replica CREATE ROLE replica login replicat...

luxingjyp的专栏 9220

CentOS7安装、配置PostgreSQL

一、程序安装yum install postgresql-serveryum install postgresql以下安装不是必要的安装客户端yum install pgadmin3这个包不知道干什么用yum install postgresql-contrib  // 666二、初始化数据库安装完成后,需要初始化数据库,为它建立保存数据的目录结构     postgresql-setup ini...

jiayangang的博客 541
上一篇: APISIX、APISIX Dashboard搭建、路由配置及插件使用
下一篇: docker安装及镜像加速mac
grootblockchain
博客等级 码龄11年 55粉丝 101原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值