PostgreSQL数据库安全管理,细节都在这里了

news2024/10/12 15:20:55

📢📢📢📣📣📣
作者:IT邦德
中国DBA联盟(ACDU)成员,10余年DBA工作经验,
Oracle、PostgreSQL ACE
CSDN博客专家及B站知名UP主,全网粉丝10万+
擅长主流Oracle、MySQL、PG、高斯及Greenplum备份恢复,
安装迁移,性能优化、故障应急处理

文章目录

    • 1.客户端接入认证
    • 2.三权分立
    • 3.行级访问
    • 4.数据库审计
    • 5.密态等值查询
    • 6.透明数据加密
    • 7.账本数据库
    • 总结

还在睡梦中,被项目组的同事一个电话吵醒!部署在云服务器的PostgreSQL,竟然没被黑客攻击了!

瞬间人麻了,顿时给我敲响了一个警钟,数据库安全管理不是等开发好项目上线后才考虑,而是在项目落地的那一刻起就要重视起来,打战粮草先行,开发安全先做,话不多说,接下来给大家分享一下PG数据库安全管理。

当前数据库数据面临的威胁模型如下:

1.客户端接入认证

数据库用户接入安全(客户端接入认证),是确保只有通过授权的客户端才可访问数据库系统的关键安全措施之一。

可用SSL进行安全的TCP/IP连接。SSL协议是安全性更高的协议标准,它加入了数字签名和数字证书来实现客户端和服务器的双向身份验证,保证了通信双方更加安全的数据传输。

SSL证书需要提前从CA认证中心申请正式的服务器证书、客户端证书和密钥。

单向SSL认证连接配置方式:
1)安装openssl
yum -y install openssl openssl-devel
2)编译安装时指定开启ssl
./configure --prefix=/pgccc/pgsql-16.4 --with-openssl 
验证和证实你编译的系统是否带openssl
pg_config --configure | grep openssl
3)创建自签名证书
先要为服务器创建一个有效期为365天的简单自签名证书:
openssl req -new -x509 -days 365 -nodes -text -out server.crt \
  -keyout server.key -subj "/CN=pgccc.centos"
修改权限:
chmod og-rwx server.key 或者 chmod 0600 server.key

4)修改postgreql.conf配置文件
vi $PGDATA/postgresql.conf
ssl=on
ssl_cert_file='/home/postgres/server.crt'
ssl_key_file='/home/postgres/server.key'
5)验证连接
postgres=# select pg_reload_conf();

psql "host=192.168.3.8 user=postgres dbname=postgres sslmode=require"
psql postgresql://postgres:123456@192.168.3.8:5432/postgres?sslmode=require 

2.三权分立

在实际业务管理中,为了避免系统管理员拥有过度集中的权利带来高风险,可以设置三权分立。将系统管理员的部分权限分立给安全管理员和审计管理员,形成系统管理员、安全管理员和审计管理员三权分立。

3.行级访问

行级访问控制特性将数据库访问控制精确到数据表行级别,使数据库达到行级访问控制的能力。
不同用户执行相同的SQL查询操作,读取到的结果是不同的。
用户可以在数据表创建行访问控制(Row Level Security)策略

--创建表test,包含不同用户数据信息
postgres=# CREATE TABLE test
(id int, role varchar(100), data varchar(100));
--打开行访问控制策略开关
postgres=# ALTER TABLE test ENABLE ROW LEVEL;
--创建行访问控制策略,当前用户只能查看用户自身的数据
postgres=# CREATE ROW LEVEL SECURITY POLICY test_rls 
ON test USING(role = CURRENT_USER);

4.数据库审计

PostgreSQL数据库提供安全审计功能,对数据库自身和用户的行为进行监控与审计。因审计会降低数据库性能,所以要限制审计的范围,尽量减少审计的事件的数目。

制定审计策略时,请参考如下建议:
1、明确审计目的;
2、审计的命令、对象、用户尽可能少;
3、先泛后精;
4、保护审计踪迹。

5.密态等值查询

PostgreSQL数据库中的密态等值查询是一种安全计算技术,允许在加密的数据上执行查询操作而无需解密数据。这意味着数据库可以在保持数据加密状态的同时,执行一些查询操作,如等值查询,而不会泄漏明文数据。

6.透明数据加密

透明数据加密(Transparent Data Encryption),是数据库在将数据写入存储介质时对数据进行加密,从存储介质中读取数据时自动解密,防止攻击者绕过数据库认证机制直接读取数据文件中的数据,以解决静态数据泄露问题。该功能对于应用层几乎透明无感知,用户可根据需要决定是否启用透明数据加密功能。

Cybertec为PG提供了一个透明数据加密(TDE)的补丁。是目前唯一支持透明加密数据(集群)级的实现,独立于操作系统或文件系统加密。

7.账本数据库

账本数据库(Ledger Database)是一种特殊类型的数据库,它专门用于记录和管理事务、交易或数据的历史变更,以支持可追溯性、不可篡改性和安全性的需求。这种数据库通常与区块链技术、分布式账本技术以及与金融、供应链、物联网等领域相关的应用程序密切相关。

PostgreSQL的openGauss分支实现了一个名为账本数据库的功能。

账本数据库融合了区块链思想,将用户操作记录至两种历史表中,
即:用户历史表和全局区块表。

总结

如何保护敏感数据,防止数据泄漏、盗窃或篡改,学习完本篇将有助于确保组织的数据完整性和保密性,还希望前辈们留言区多多提出宝贵的意见!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2208220.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

要求信创检测的项目验收中,验收依据有哪些?

一、验收依据和分类 验收依据: 通常包括立项批复文件以及经批复的项目建议书、可行性研究报告、业务需求说明书;正式设计文件;项目招标文件和采购文件;签订的项目合同或协议;经批准的项目变更文件;有关法…

出海快报 | “三消+短剧”手游横空出世,黄油相机“出圈”日本市场,从Q1看日本手游市场趋势和机会

编者按:TopOn出海快报栏目为互联网出海从业者梳理出海热点,供大家了解行业最新发展态势。 1.“三消短剧”横空出世,融合创新手游表现亮眼 随着竞争的加剧,新产品想要突出重围,只能在游戏中加入额外的元素。第一次打开…

vue使用js-xlsx导入本地excle表格数据,回显在页面上

效果图 解释放在代码的注释中 页面代码&#xff0c;导入本地文件我用的是element的上传工具 // 我是根据js文件直接引入的 <script src"/js/xlsx.full.min.js"></script>// 导入excelreadWorkbookFromLocalFile(fileData) {// 文件信息const file f…

智能生成ppt软件哪个好?如何高效生成ppt?

想要快速制作出专业且吸引人的PPT演示文稿吗&#xff1f;ai智能生成ppt工具可以帮你实现这一目标。 无需复杂的设计技巧&#xff0c;也不必花费大量时间&#xff0c;只需几个简单的步骤&#xff0c;就能创造出令人印象深刻的演示文稿。下面是一份免费版教程&#xff0c;让你轻…

中航资本:股票低佣开户注意事项,怎么低佣金开户?

股票生意中会涉及到一些手续费&#xff0c;佣金费、印花税、过户费等&#xff0c;印花税、过户费的费率是承认的&#xff0c;而不同证券公司、生意途径的佣金费率都有或许不同。 低佣金开户办法&#xff1a; 1、线上券商途径开户&#xff1a;许多大型证券公司&#xff0c;例如…

在HF上部署你的专属MindSearch,随时随地开启智能搜索!

作者&#xff1a;MindSearch 兴趣小组成员张富才 本文将详细带领大家学习如何在 Hugging Face Space 部署****并美化专属自己的 MindSearch 应用&#xff0c;免去排队等待的烦恼&#xff0c;随时随地开启智能搜索&#xff01; 在深入开始之前&#xff0c;我们需要了解&#x…

深入理解 C/C++ 指针

深入理解 C 指针&#xff1a;指针、解引用与指针变量的详细解析 前言 在 C 编程语言中&#xff0c;指针 是一个非常强大且重要的概念。对于初学者来说&#xff0c;指针往往会让人感到困惑不解。本文将通过形象的比喻&#xff0c;帮助大家深入理解指针、解引用与指针变量的概念…

安装openai-whisper 失败

昨晚安装python 语音识别模型经常失败&#xff1a; pip install openai-whisper 具体原因是因为国外的源使网络不稳定造成断网 查阅资料我自己的解决办法是在自己C:\Users\用户名目录下建一个pip文件夹&#xff0c;在pip文件夹下建一个pip.ini文件 在pip.ini文件中加入自己要…

MYSQL 多表拼接link

&#x1f3c6;本文收录于《全栈Bug调优(实战版)》专栏&#xff0c;主要记录项目实战过程中所遇到的Bug或因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&am…

mysql复制表结构和数据

1.实例 #复制一张和test 一摸一样的表结构 CREATE TABLE test_one like test#往复制的表结构中复制数据 INSERT INTO test_one SELECT * FROM test#两者一起使用相当于 cv大法2.总结 完全实现了表结构和数据的复制&#xff0c;但是两条sql 得分两步执行 2.1 复制表结构 #复制…

AI开源项目

开源AI知识库 FastGPT FastGPT是一个基于LLM&#xff08;大型语言模型&#xff09;的知识库问答系统项目&#xff0c;以下是对FastGPT项目的详细解释&#xff1a; 一、项目背景与团队 FastGPT由FastAI团队开发&#xff0c;该团队包含多位在机器学习和自然语言处理领域具有丰富…

大数据应用方案1-Postgresql集群

1 说明&#xff1a; 在做任何系统之前&#xff0c;选择哪种数据底座做支持很重要&#xff0c;是一栋大厦地基牢不牢固的根本问题&#xff0c;这里用Postgresql基于docker实现了分布式的集群实践&#xff0c;分享之。 2. 基于docker的集群实践 2.1 方案设计 - 两个已安装了d…

ICLR 2024 Spotlight|SEAL:面向真实场景超分辨率的系统性评估框架

研究背景 现实世界图像超分辨率&#xff08;Real-World Super-Resolution, Real-SR&#xff09;技术&#xff0c;作为提升图像清晰度的关键技术&#xff0c;正变得越来越重要。然而&#xff0c;如何准确评估Real-SR方法的性能&#xff0c;一直是该领域的一大挑战。目前的评估…

mig IP核的学习

mig全称是Memory Interface Generator。 参考自视频&#xff1a;MIG IP配置_哔哩哔哩_bilibili DDR基础知识 时钟类型 使用流程 选择DDR3 16是地址线的位宽 能在DDR3的型号MT41K256M16XX-125中看出来。 怎么选择clock period 靠的是 芯片型号中的 -125,然后算出 800MHZ,…

【市场解读】中国智能电车发展趋势

参考文献&#xff1a;汽车之家-《2024中国智能电动车发展趋势洞察报告》 市场趋势 汽车消费 新能源渗透率持续走高&#xff0c;在2024上半年已达到42%&#xff0c;有望在2025冲刺60%。用户对新能源车的关注度也持续增长。 新能源车新品投放加速&#xff0c;其中混动新品投…

QT 10.11

作业&#xff1a;将数据库和图像处理自己实现一遍 数据库操作 源文件 #include "widget.h" #include "ui_widget.h" #include<QMessageBox> #include<QDebug> #include <QTableWidget> Widget::Widget(QWidget *parent) : QWidget(pare…

如何在 idea 中移动类

今天在项目中出现了一个问题&#xff0c;大哥告诉我说&#xff0c;我的类放错包了&#xff0c;但是此时这个类我已经写得差不多了&#xff0c;有很多其他类中都用的是当前包的路径&#xff0c;那么该如何简单的将类移动位置呢&#xff1f; 1.右击你要移动的类&#xff0c;依次…

包含957,174个局部最优解,为优化算法评估提供了新的视角

2024-10-03, 英国诺丁汉大学数学科学学院的Gary R. Mirams教授团队创建了一个基于英国地形的二维优化基准数据集,该数据集包含了经过修改的英国地形数据&#xff0c;并从中识别出了957,174个局部最优解&#xff0c;为优化算法的评估提供了新的视角。 一、研究背景&#xff1a; …

使用 `curl` 命令时遇到 “option --data-raw: is unknown“ 错误的解决方案

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

Unity 如何在 iOS 新增键盘 KeyCode 响应事件

1.定位到文件UnityViewKeyboard.mm同如下路径: 2.打开该Objective-C脚本进行编辑,找到关键函数: createKeyboard: - (void)createKeyboard {// only English keyboard layout is supportedNSString* baseLayout "1234567890-qwertyuiop[]asdfghjkl;\\zxcvbnm,./!#$%^&am…