Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Postgresql 安全组件都有那些

Postgresql 安全组件都有那些

作者头像
AustinDatabases
发布于 2021-05-11 06:24:44
发布于 2021-05-11 06:24:44
1.3K0
举报
文章被收录于专栏:AustinDatabasesAustinDatabases

postgresql 安全的组件有不少,到底有那些都起到什么作用,可以在这里说一说.安全的组件,主要有以下几个方面, 1密码攻击方面的安全保护 2 审计方面的记录 3 密码方面的等级的保护, 以下截图均从 POSTGRESQL 12.2 版本来进行

1 密码攻击方面的安全保护

这功能是从9.4.21 开始添加的功能,并不需要通过create extension来进行,在添加后直接重新启动数据库服务就可以.

打开POSTGRESQL 数据库的share_preload_librairies 数据库,在shared_preload_libraries 中添加auth_delay 并且添加 auth_dealy.milliseconds, 这里默认这个参数为0 , 这里的意思为当访问中密码错误的情况下,我们会等待多长时间对访问的连接进行回馈. 这样的方法

可以通过调高auth_delay.milliseconds来进行相关的测试,比如调整为5000 也就是密码输入错误后,需要5秒系统才能反映.

试验是通过打印当前时间,连接POSTGRESQL ,密码错误,等待时间,在打印时间组成的,这里可以看到11秒的时间,但密码输入正确则不会出现等待的问题. 输入密码正确则立即进入系统.

这样的方式保护优点是防止对数据库进行大批量的数据访问,去猜测密码的正确性. 但缺点也很明显,如果攻击的方式抓住错误密码长时间没有响应,可以发动大量的连接来连接数据库,导致正常的连接无法连入到数据库中,可以称之为数据库的DDOC攻击.

2 passwordcheck

passworkdcheck 模块来自于passwordcheck.so 模块,它可以实现密码复杂度的要求,通过此模块可以检查密码的复杂性的要求,如果密码没有达到预定的密码的复杂度的要求,会拒绝创建数据库用户的方式来强制重新建立账号,直到达到相关的要求. 其中passwordcheck.so 是其中必然要包含的文件,如果没有则这个功能无法启动

然后在shared_preload_libraries 中加入passwordcheck 功能.

alter system set shared_preload_libraries=pg_pathman,pg_stat_statements,passwordcheck;

重启数据库系统

在添加完passwordcheck后,建立用户给出密码, 必须是最少8个字符,必须包含数字,和字母,密码中不能有用户的名字

在修改密码中如果密码中只有数字的化也会无法添加,因为要求必须包含字母

用户密码中不能包含用户名

3 pgaudit 数据库的审核是数据库工作中的一项重要的工作, pgaudit是一个开源的扩展,通过日志的方式来记录postgresql 数据库详细的audit 审核的日志,主要应用与本地的日志的记录,这个工具主要是来自于二象限公司的开发者.

make install USE_PGXS=1

安装完毕

当然我们可以通过设置log_statement=all来记录PostgreSQL中的所有语句,问题是为什么要使用pgAudit,主要的问题在于postgresql 中的审计是可以针对特定的数据库以及特定的操作来进行记录, 例如SELECT COPY ,或者 Insert,update, delete 等操作,或者 DDL 等操作进行单独的记录. 并且不同的点在于他还对于谁执行的,什么时间执行的有相关的记录.

重启数据库服务器 在需要执行audit的数据库打开 create extension pgaudit

对audit 设置中可以通过命令的方式来进行设置

1 确认当前数据库是否安装了

SELECT * FROM pg_available_extensionsWHERE name LIKE '%audit%';

2 SELECTname,setting FROM pg_settings WHERE name LIKE 'pgaudit%';

在开启后,在进行相关操作,会在日志中记录相关audit 日志

可以对当前检测的数据库的检测的级别进行更改

set pgaudit.log= 'read,write,ddl';

实际上对于POSTGRESQL 的数据库安全可做的东西还很多

例如数据关键列加密,或者对于用户访问采用其他的模式, 秘钥或令牌的方式,不过安全是一个全方位的问题,例如对数据库的密码破解的问题,也可以通过网络对特定端口的异常访问找到问题的解决点,不能将数据库的安全全部寄托到数据库本身.

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-04-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AustinDatabases 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【DB宝93】PG审计插件之pgaudit
PostgreSQL可以通过log_statement=all 提供日志审计,但是没有提供审计要求的详细程度。PostgreSQL Audit Extension (pgAudit)能够提供详细的会话和对象审计日志,是PG的一个扩展插件。pgAudit通过标准PostgreSQL日志记录工具提供详细的会话和/或对象审核日志记录。
AiDBA宝典
2022/04/11
1.9K0
病毒攻击PostgreSQL暴力破解系统,防范加固系统方案(内附分析日志脚本)
网络安全研究人员解开了一种名为PG_MEM的新型恶意软件,设计用于在暴力破解方式进入PostgreSQL数据库实例后进行加密货币挖矿。
AustinDatabases
2024/11/25
1690
病毒攻击PostgreSQL暴力破解系统,防范加固系统方案(内附分析日志脚本)
PostgreSQL 必须要知道和安装的扩展 extension (2)
POSTGRESQL 的好处就在于扩展,一个好的扩展可以让POSTGRESQL 功能犹如变形金刚一样. 上次说了几个extension ,这期说说我们在生产上必须安装的几个extension.
AustinDatabases
2021/07/15
2.1K0
PostgreSQL  必须要知道和安装的扩展 extension (2)
PostgreSQL 用户胡作非为只能受着 --- 警告他
“老师好:这有一个新问题,关于谁修改了work_mem, maintenance_work_mem,那些用户在自己的权限下,可以直接修改本地session的参数,这也可以导致PostgreSQL崩溃,那这个问题我们怎么发现和排查,比如一个用户将maintenance_work_mem 改成6G或更大,我们怎么发现这些用户修改过这些参数呢,因为SESSION 失效后参数设置也失效了,我们的有办法,后续发现,好进行排查时作为一个依据,感谢老师,这是我读完那篇文章后的担心。”
AustinDatabases
2024/12/06
940
PostgreSQL  用户胡作非为只能受着 --- 警告他
OrioleDB – 构建现代云原生存储引擎
OrioleDB是PG的一个新存储引擎,为世界上最受欢迎的数据库平台带来一种现代化数据库容量、功能和性能方法。
yzsDBA
2022/03/29
7620
原 为PostgreSQL添加插件
    我目前了解的PG插件大约有两种,一种是利用hook,另一种是建立C函数,然后在数据库中进行关联。PG本身就是最好的老师,大家有兴趣可以看一下contrib目录下的插件。     下面将对两种方式进行介绍:     1、利用hook建立插件,hook是PG中可以对PG运行机制进行修改的一种方式,大家可以看一下我之前对PG hook的介绍:     a.在contrib目录下建立brother目录,建立brother.c文件和Makefile文件。具体内容见下: brother.c
王果壳
2018/05/17
2.5K0
POSTGRESQL VS MYSQL 到底那个数据库 RDS 技术含量高 ?
云数据库的RDS 产品,在传统开源的系列里面大致可以选择的是 POSTGRESQL 和 MYSQL 两种,诚然在RDS 的里面大部分产品最终的选择还是MYSQL ,今天不想讨论产品的量,而是想讨论以下产品的难度,RDS 产品在 POSTGRESQL 和 MYSQL 两种产品的难度问题。
AustinDatabases
2022/12/12
3.3K0
POSTGRESQL  VS  MYSQL 到底那个数据库 RDS  技术含量高 ?
分布式 PostgreSQL 集群(Citus)官方安装指南
集群启动并运行后,您可以访问我们关于多租户应用程序或实时分析的教程,在几分钟内开始使用 Citus。
为少
2022/03/31
2.1K1
分布式 PostgreSQL 集群(Citus)官方安装指南
Prometheus远端数据存储方案之PostgreSQL
今天看到德哥分享的基于postgresql的prometheus数据远端存储方案,于是有了本文的实验。
保持热爱奔赴山海
2019/10/30
2.1K0
PostgreSQL 审计怎么搞
PostgreSQL 的审计还是要借助PostgreSQL的扩展pgaudit 来进行。有些熟悉PG的同学可能说,不是可以log_statement = all 来记录所有的语句吗,干嘛那么麻烦,自己去查日志不就好了。实际上如果公司有审计部门的情况下,这样是过不了关的,需要一个与商业数据功能相差无几的方式来面对审计部门的“亲和力”。
AustinDatabases
2020/02/13
2.7K0
PostgreSQL  审计怎么搞
进阶数据库系列(二十五):PostgreSQL 数据库日常运维管理
这是个bug,版本升级后,pg_config改变了,会导致后面装外部extension时没有装到指定目录。
民工哥
2023/08/22
1.4K0
进阶数据库系列(二十五):PostgreSQL 数据库日常运维管理
原 PostgreSQL下如何修改用户权限的介绍以及hook机制对超级用户的权限修改
要想修改PG的用户权限,那么首先要对PG权限控制做一下了解: PG的权限控制是针对到各个对象的。大家可以看一下,所有系统表(pg_catalog下)几乎都会有aclitem[]数组类型的**acl的字段,这就是对权限的标识。 这里的标识情况如下: rolename=xxxx -- privileges granted to a role =xxxx -- privileges granted to PUBLIC r -- SELECT ("read")
王果壳
2018/05/17
5.4K0
Postgresql extension 挑挑拣拣 (1)
PostgreSQL 的extension是需要仔细说说,如果说MYSQL 有plug-in的话让数据库变得灵活,可也是一个配角。POSTGRESQL 的 extension 经常可以反客为主,把postgresql 变成POSTGIS 数据库就是一个extension的功劳。
AustinDatabases
2021/04/23
7000
PostgreSQL逻辑复制之pglogical篇
pglogical 是 PostgreSQL 的拓展模块, 为 PostgreSQL 数据库提供了逻辑流复制发布和订阅的功能。 pglogical 重用了 BDR 项目中的一部分相关技术。pglogical 是一个完全作为PostgreSQL 扩展实现的逻辑复制系统。完全集成,它不需要触发器或外部程序。这种物理复制的替代方法是使用发布/订阅模型复制数据以进行选择性复制的一种高效方法。支持 PG10、9.6、9.5、9.4 ,提供比 Slony、Bucardo 或 Londiste 更快的复制速度,以及跨版本升级。 我们使用的下列术语来描述节点和数据流之间的关系,重用了一些早期的 Slony 技术中的术语:
星哥玩云
2022/08/18
2.1K0
PostgreSQL用户登录失败自动锁定的解决办法
墨墨导读:PostgreSQL使用session_exec插件实现用户密码验证失败几次后自动锁定,本文介绍一种处理方案。
数据和云
2021/03/26
4.9K0
PostgreSQL 数据读取快慢,你有做主的权利
PostgreSQL使用shared_buffers来缓存内存中的块。其思想是减少磁盘I/O并以最有效的方式加速数据库。在正常操作期间,数据库缓存将非常有用,并确保良好的响应时间。但是,如果由于某种原
AustinDatabases
2019/10/23
1.4K0
PostgreSQL  数据读取快慢,你有做主的权利
PostgreSQL启动
Postgresql启动流程模块划分。启动时首先会创建内存上下文TopMemoryContext作为内存的root,之后的内存都在这个下进行分配;然后设置一些LC_*系统变量;检查不能在root下运行postgres;然后进入4个分支:--boot为initdb进行初始化数据库的时候调用流程;--describle-config获取配置项值就退出;--single为单进程模式启动;PostmasterMain为正常启动PG时的调用流程。
yzsDBA
2020/10/28
1.1K0
PostgreSQL启动
如何获取PostgreSQL慢查询?从小白到高手的实战指南
数据库优化是性能调优的核心,而慢查询则是性能瓶颈的罪魁祸首。如何找到慢查询并优化它们,是每个开发者和DBA都必须掌握的技能。
井九
2024/11/19
3200
如何获取PostgreSQL慢查询?从小白到高手的实战指南
PostgreSQL中如何实现密码复杂度检查?
PostgreSQL使用passwordcheck扩展通过CrackLib来检查口令 PostgreSQL自带了一个插件passwordcheck可以满足简单的密码复杂度测验, 防止使用过短, 或者与包含用户名的密码,只需要把$libdir/passwordcheck加入到postgresql.conf的shared_preload_libraries参数中,然后重启服务器即可,只要通过CREATE ROLE或ALTER ROLE设置用户,passwordcheck模块就会检查用户的口令,如下:
数据和云
2020/10/09
2.9K0
prometheus使用postgresql-adapter连接postgresql
Prometheus使用postgresql需要使用postgresql-adapter进行数据转换。在安装postgresql-adapter之前需要安装2个扩展:pg_prometheus和timescaledb
charlieroro
2020/03/23
2.3K0
推荐阅读
相关推荐
【DB宝93】PG审计插件之pgaudit
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文