#一、为什么DBA需要掌握安全加固和日志分析?
作为数据库管理员(DBA),你的核心任务就是让数据库既安全又高效。
原则:只给用户最低限度的权限,就像只给钥匙开需要的门!
比如,你想让用户report_user
只能读数据,不能删改:
-- 创建只读角色
CREATE ROLE read_only;
-- 授予查询权限
GRANTCONNECTON DATABASE mydb TO read_only;
GRANT USAGE ON SCHEMA public TO read_only;
GRANTSELECTONALL TABLES IN SCHEMA public TO read_only;
关键点:
SELECT
:允许读数据,但不能修改。别偷懒用ALL PRIVILEGES
!按需分配:
-- 只允许用户修改某张表
GRANTUPDATEON orders TO order_manager;
如果用户被误加了权限,立刻回收:
-- 收回删除权限
REVOKEDELETEON customers FROM sales_team;
目标:找出用户“多带的钥匙”并清理!
-- 查看所有用户权限
SELECT*FROM information_schema.role_table_grants;
比如用户dev_user
不该有orders
表的DELETE
权限:
SELECT grantee, table_name, privilege_type
FROM information_schema.table_privileges
WHERE grantee ='dev_user'
AND table_name ='orders'
AND privilege_type ='DELETE';
发现异常? 用REVOKE
收回权限!
角色可能从其他角色继承多余权限:
-- 查看角色成员
SELECT roleid, memberFROM pg_auth_members;
如果发现dev_user
属于高权限角色,及时调整。
pgBadger是PostgreSQL的“行车记录仪”,帮你揪出慢查询和性能问题!
方法一(简单版):
# Ubuntu/Debian
sudo apt-get install pgbadger
方法二(手动安装):
wget https://github.com/darold/pgbadger/archive/refs/tags/v12.0.tar.gz
tar -zxvf v12.0.tar.gz
cd pgbadger-12.0
perl Makefile.PL
make && sudo make install
(安装后输入pgbadger --version
验证)
修改postgresql.conf
,开启详细日志:
# 日志格式设为CSV(方便解析)
log_destination = 'csvlog'
logging_collector = on
log_directory = 'pg_log'
log_filename = 'postgresql-%Y-%m-%d.log'
# 记录关键信息
log_checkpoints = on
log_connections = on
log_disconnections = on
log_lock_waits = on
log_min_duration_statement = 1000 -- 记录超过1秒的慢查询
重启数据库生效:pg_ctl restart
# 分析当天日志
pgbadger /var/lib/pgsql/data/pg_log/postgresql-*.log -o report.html
# 分析指定时间段的日志
pgbadger --begin='2025-04-20 00:00:00' --end='2025-04-24 23:59:59' *.log
报告内容解读:
用Crontab每天凌晨分析前一天日志:
0 2 * * * /usr/bin/pgbadger /var/lib/pgsql/data/pg_log/postgresql-$(date -d "yesterday" +"%Y-%m-%d").log -o /var/www/html/report.html
记住:优秀的DBA不是救火队员,而是防患于未然的架构师!
确保命令和配置在PostgreSQL 9.2.4及以上版本有效。建议在测试环境验证后上生产环境。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有