赞
踩
Postgres2015全国用户大会将于11月20至21日在北京丽亭华苑酒店召开。 报名链接:http://postgres2015.eventdove.com/
本文是PostgreSQL使用安全指导性的文章,涉及详细的用法或原理请参考相关链接。
如何安全的使用PostgreSQL,让用户高枕无忧呢? 可以分为如下几个方面来加固你的数据库:
一、认证安全:再好的安全策略,也需要备份。
基于时间点的,块级别增量备份,是比较靠谱的。(你可以选择合适的文件系统,例如btrfs)
请参考,http://blog.163.com/digoal@126/blog/static/163877040201451894734122/
http://blog.163.com/digoal@126/blog/static/16387704020141110105858171/
七、审计
审计功能,一般是用于排查问题的,当然也是一种举证的手段,例如你的数据库遭到暴力破坏了,证据非常重要。如何跟踪postgresql.conf的配置变更?
-- worker process钩子程序的妙用.
http://blog.163.com/digoal@126/blog/static/16387704020137624414708/
如何跟踪表中的记录被哪个用户修改或插入?
http://blog.163.com/digoal@126/blog/static/163877040201201333830383/
使用pg_log_userqueries插件, 审计指定用户,数据库或超级用户的所有执行的SQL.
http://blog.163.com/digoal@126/blog/static/1638770402012019112218804/
使用hstore插件和触发器跟踪表的行记录变更.
http://blog.163.com/digoal@126/blog/static/163877040201252575529358/
PostgreSQL中如何跟踪表的创建时间, 表定义的修改时间
http://blog.163.com/digoal@126/blog/static/1638770402012526105017774/
PostgreSQL 精细化审计的实施.
http://blog.163.com/digoal@126/blog/static/16387704020132209854525/
PostgreSQL 审计功能配置
http://blog.163.com/digoal@126/blog/static/16387704020132208241607/
PostgreSQL 9.3 规则系统改进, 允许在规则的values中使用多次NEW, OLD.
-- 使用规则跟踪数据变更, 记录新老数据.
http://blog.163.com/digoal@126/blog/static/16387704020134915429197/
如何跟踪基于字段值为条件的行的变更,插入和删除呢?
创建触发器时when的用法, 或在触发器函数中处理. 选择效率高的.
http://blog.163.com/digoal@126/blog/static/16387704020148178320844/
PostgreSQL数据库在上市公司重要应用中的SOX审计
http://blog.163.com/digoal@126/blog/static/16387704020148304551659/
审计表的DDL行为, 以及哪个会话在什么时间点,通过什么IP干的.
http://blog.163.com/digoal@126/blog/static/1638770402014111194225536/
审计变更的行, 以及被变更的字段内容; 新增的行, 删除的行; 以及哪个会话在什么时间点,通过什么IP干的.
http://blog.163.com/digoal@126/blog/static/1638770402014111473644127/
pg_audit模块
http://blog.163.com/digoal@126/blog/static/163877040201541595510867/
八、补丁
PostgreSQL社区的更新速度很快,几乎每天都会有大大小小的更新,有些可能是FIX patch,有些可能是feature,有些可能是性能提升patch,正常情况下,我们只要跟随小版本的升级就可以了,一般社区遇到比较大的安全漏洞,提交补丁后马上就会发布小版本,如果没有发布小版本,说明没有大的安全漏洞,当然你可以通过http://git.postgresql.org实时跟踪社区的动态,自行打patch。 大版本的更新,通常情况下大版本有大量的feature,如果需要使用的话,也可以更新到大的版本,但是请注意与应用有关的修改,模块的更新等。
九、外界环境安全
控制连接数,控制活动连接数,控制SQL执行时间,控制锁等待时间,控制事务空闲时间。
另一方面,因为PostgreSQL的并发控制用到了多版本,所以当更新或删除数据时,老的版本依旧存在于数据库中,需要vacuum进程回收这些数据,目前有一个缺陷,当有长事务存在时,事务开启后产生的垃圾被视为新的垃圾,不会被回收,所以长事务容易导致数据库膨胀,太长的事务甚至可以导致数据库的xid耗尽,必须关机做vacuum freeze。请参考,http://blog.163.com/digoal@126/blog/static/16387704020153305256157/
十一、监控
监控是DBA的眼睛,好的监控可以提前发现问题,将问题排除在发生之前。常用监控项请参考,http://blog.163.com/digoal@126/blog/static/163877040201412763135184/
巡检参考,http://blog.163.com/digoal@126/blog/static/1638770402014252816497/
持续更新。
|
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。