【好文推荐】openGauss 5.0.0 数据库安全——全密态探究

前言

写此文章的目的,主要是验证:

  • openGauss 5.0.0 数据库能够实现哪种加密方式的全密态

  • 全密态数据库的特点

一、全密态介绍

ffc984858dbb5ecc6a24446e3822b6a3.jpeg
b40739ab6f9754eda08083b23549f1ca.jpeg
全密态数据库意在解决数据全生命周期的隐私保护问题,使得系统无论在何种业务场景和环境下,数据在传输、运算以及存储的各个环节始终都处于密文状态。当数据拥有者在客户端完成数据加密并发送给服务端后,在攻击者借助系统脆弱点窃取用户数据的状态下仍然无法获得有效的价值信息,从而起到保护数据隐私的能力。

由于整个业务数据流在数据处理过程中都是以密文形态存在,通过全密态数据库,可以实现:

  • 1)保护数据在云上全生命周期的隐私安全。无论数据处于何种状态,攻击者都无法从数据库服务端获取有效信息。

  • 2)帮助云服务提供商获取第三方信任。无论是企业服务场景下的业务管理员、运维管理员,还是消费者云业务下的应用开发者,用户通过将密钥掌握在自己手上,使得高权限用户无法获取数据有效信息。

  • 3)让云数据库服务借助全密态能力更好的遵守个人隐私保护方面的法律法规。

全密态数据库目前支持两种连接方式:gsql连接和jdbc连接。

二、环境准备

本次实验使用的操作系统是centos7.9,openGauss版本是5.0.0,实验直接在一台服务器上面进行。

  • 操作系统
    6f2e09cc7e9b6670c9b6975acda76943.jpeg

  • 数据库版本

    c6f0776fe78897625896ed770584606f.jpeg

三、实验过程

1、创建用户

使用管理员用户登录,然后参加一个qmttest用户,密码设置为"qwer1234!@#$"

CREATE USER qmttest PASSWORD 'qwer1234!@#$';

b220c016fd820bec189f816e0ee2aab1.jpeg

使用qmttest用户登录,连接密态数据库.

-C:是打开密态开关

gsql -p 15400 -d postgres -U qmttest -r -C

14587669c17e3a62deff98864aacc3f1.jpeg

2、创建用户密钥

全密态数据库有两种密钥,即客户端主密钥CMK和数据加密密钥CEK。CMK用于加密CEK,CEK用于加密用户数据。密钥创建的顺序和依赖依次为:创建CMK > 创建CEK。

从这里开始验证加密方式的组合。

序号 主密钥CMK 数据加密密钥CEK 1 RSA_2048 AEAD_AES_256_CBC_HMAC_SHA256 2 RSA_3072 AEAD_AES_128_CBC_HMAC_SHA256 3 SM2 SM4_SM3 2.1 创建客户端主密钥CMK

密钥存储路径:默认情况下,localkms将在(LOCALKMS_FILE_PATH)路径下生成/读取/删除密钥文件,用户可手动配置该环境变量。但是,用户也可以不用单独配置该环境变量,在尝试获取LOCALKMS_FILE_PATH失败时,localkms会尝试获取($GAUSSHOME/etc/localkms/)路径,如果该路径存在,则将其作为密钥存储路径。密钥相关文件名:使用CREATE CMK语法时,localkms将会创建四个与存储密钥相关的文件。示例:当KEY_PATH = “key_path_value”, 四个文件的名称分别为key_path_value.pub、key_path_value.pub.rand、 key_path_value.priv、 key_path_value.priv.rand。所以,为了能够成功创建密钥相关文件,在密钥存储路径下,应该保证没有已存在的与密钥相关文件名同名的文件。

2.1.1 RSA_2048
使用RSA_2048加密算法进行创新CMK 名称:qmt_rsa2048CREATE CLIENT MASTER KEY qmt_rsa2048 WITH (KEY_STORE = localkms , KEY_PATH = "qmt_rsa2048", ALGORITHM = RSA_2048);

91ac3418c7a89d854c2c6a995dd1cf1f.jpeg
查看生成的相应加密文件

421c82129f1467ee54c9f211fbc2795e.jpeg

2.1.2 RSA_3072
使用RSA_3072加密算法进行创建CMK 名称:qmt_RSA3072CREATE CLIENT MASTER KEY qmt_RSA3072 WITH (KEY_STORE = localkms , KEY_PATH = "qmt_RSA3072", ALGORITHM = RSA_3072);
c14b3def2e2eb5e415cee3f0263685e6.jpeg
查看生成的相应加密文件
c7a4a4ea4b09be7ba7febd6cef8d0cad.jpeg
2.1.3 SM2
使用SM2加密算法进行创建CMK 名称:qmt_SM2CREATE CLIENT MASTER KEY qmt_SM2 WITH (KEY_STORE = localkms , KEY_PATH = "qmt_SM2", ALGORITHM = SM2);

81349a80d16c5dc34c5d477a22bae570.jpeg
查看生成的相应加密文件
dee39844c07444e10d053476ea4cd412.jpeg

2.2 创建数据加密密钥CEK

2.2.1 AEAD_AES_256_CBC_HMAC_SHA256
使用 RSA_2048 + AEAD_AES_256_CBC_HMAC_SHA256 创建CEK 名称:RSA_2048_256_CEKCREATE COLUMN ENCRYPTION KEY RSA_2048_256_CEK WITH VALUES (CLIENT_MASTER_KEY = qmt_rsa2048, ALGORITHM = AEAD_AES_256_CBC_HMAC_SHA256);

c470fc5332fdaa646375497953400b80.jpeg

使用 RSA_3072 + AEAD_AES_256_CBC_HMAC_SHA256 创建CEK 名称:RSA_3072_256_CEKCREATE COLUMN ENCRYPTION KEY RSA_3072_256_CEK WITH VALUES (CLIENT_MASTER_KEY = qmt_RSA3072, ALGORITHM = AEAD_AES_256_CBC_HMAC_SHA256);

0f0a4a2430ad918cab0b320be1f47e4c.jpeg

使用 SM2 + AEAD_AES_256_CBC_HMAC_SHA256 创建CEK 名称:SM2_256_CEK 创建失败CREATE COLUMN ENCRYPTION KEY SM2_256_CEK WITH VALUES (CLIENT_MASTER_KEY = qmt_SM2, ALGORITHM = AEAD_AES_256_CBC_HMAC_SHA256);

有报错

ERROR(CLIENT): National secret algorithm must be used together.

国家密码算法必须一起使用

e118e16a444cf742f618949c4586adba.jpeg

2.2.2 AEAD_AES_128_CBC_HMAC_SHA256
使用 RSA_2048 + AEAD_AES_128_CBC_HMAC_SHA256 创建CEK 名称:RSA_2048_128_CEKCREATE COLUMN ENCRYPTION KEY RSA_2048_128_CEK WITH VALUES (CLIENT_MASTER_KEY = qmt_rsa2048, ALGORITHM = AEAD_AES_128_CBC_HMAC_SHA256);

a81ce2a0e0531c370ff1b072da98f98d.jpeg

使用 RSA_3072 + AEAD_AES_128_CBC_HMAC_SHA256 创建CEK

名称:RSA_3072_128_CEK

CREATE COLUMN ENCRYPTION KEY RSA_3072_128_CEK WITH VALUES (CLIENT_MASTER_KEY = qmt_RSA3072, ALGORITHM = AEAD_AES_128_CBC_HMAC_SHA256);

6e1db1989e47a5972efcb80ebd168ca3.jpeg

使用 SM2 + AEAD_AES_128_CBC_HMAC_SHA256 创建CEK 名称:SM2_128_CEK 创建失败CREATE COLUMN ENCRYPTION KEY SM2_128_CEK WITH VALUES (CLIENT_MASTER_KEY = qmt_SM2, ALGORITHM = AEAD_AES_128_CBC_HMAC_SHA256);

有报错

ERROR(CLIENT): National secret algorithm must be used together.

国家密码算法必须一起使用

032722a009d9a41e208555b4e663d15a.jpeg

2.2.3 SM4_SM3
使用 RSA_2048 + SM4_SM3 创建CEK 名称:RSA_2048_SM4_SM3_CEK 创建失败CREATE COLUMN ENCRYPTION KEY RSA_2048_SM4_SM3_CEK WITH VALUES (CLIENT_MASTER_KEY = qmt_rsa2048, ALGORITHM =SM4_SM3);

有报错

ERROR(CLIENT): National secret algorithm must be used together.

国家密码算法必须一起使用

6062c181303c46588c99b6e128f73687.jpeg
使用 RSA_3072 + SM4_SM3 创建CEK

名称:RSA_3072_SM4_SM3_CEK

创建失败

CREATE COLUMN ENCRYPTION KEY RSA_3072_SM4_SM3_CEK WITH VALUES (CLIENT_MASTER_KEY = qmt_RSA3072, ALGORITHM = SM4_SM3);

有报错

ERROR(CLIENT): National secret algorithm must be used together.

国家密码算法必须一起使用

9b0897529a93ac7f7d803797f97fc316.jpeg

使用 SM2 + SM4_SM3 创建CEK

名称:SM2_SM4_SM3_CEK

CREATE COLUMN ENCRYPTION KEY SM2_SM4_SM3_CEK WITH VALUES (CLIENT_MASTER_KEY = qmt_SM2, ALGORITHM = SM4_SM3);

d21d5a68ed4a4a199f50a446cea1b6ac.jpeg

2.3 总结

序号 数据加密密钥CEK 主密钥CMK 组合名称 是否创建成功 1 AEAD_AES_256_CBC_HMAC_SHA256 RSA_2048 RSA_2048_256_CEK 2 AEAD_AES_256_CBC_HMAC_SHA256 RSA_3072 RSA_3072_256_CEK 3 AEAD_AES_256_CBC_HMAC_SHA256 SM2 SM2_256_CEK 4 AEAD_AES_128_CBC_HMAC_SHA256 RSA_2048 RSA_2048_128_CEK 5 AEAD_AES_128_CBC_HMAC_SHA256 RSA_3072 RSA_3072_128_CEK 6 AEAD_AES_128_CBC_HMAC_SHA256 SM2 RSM2_128_CEK 7 SM4_SM3 RSA_2048 RSA_2048_SM4_SM3_CEK 8 SM4_SM3 RSA_3072 SA_3072_SM4_SM3_CEK 9 SM4_SM3 SM2 SM2_SM4_SM3_CEK

国密加密算法 SM2 SM4_SM3 不能和其他加密方式组合。

目前创建数据加密密钥CEK是成功的,下面进行使用测试。

3、表加密测试

3.1 使用RSA_2048_256_CEK创建加密表

  • 表名称:RSA_2048_256_TB

CREATE TABLE RSA_2048_256_TB (id_number int, name text encrypted with (column_encryption_key = RSA_2048_256_CEK, encryption_type = DETERMINISTIC),credit_card varchar(19) encrypted with (column_encryption_key = RSA_2048_256_CEK, encryption_type = DETERMINISTIC));

2ada8ffb6aecf0046224ff94d3842515.jpeg

  • 插入数据

INSERT INTO RSA_2048_256_TB VALUES (1,'joe','6217986500001288393');
INSERT INTO RSA_2048_256_TB VALUES (2,'joy','6219985678349800033');

57ce31e203e654ddec606cb64a1951fb.jpeg

  • 客户端查询数据

select * from RSA_2048_256_TB;

e7aa31939bc1791d9bd767f7603af8ee.jpeg

  • 通过不加 -C 登录查询数据

gsql -p 15400 -d postgres -U qmttest -r
select * from RSA_2048_256_TB;

246efe5e8314b22e0c667b9c85293da6.jpeg
可以看出,数据已经加密。

加密成功,查询成功

3.2 使用RSA_3072_256_CEK创建加密表

名称:RSA_3072_256_TB

CREATE TABLE RSA_3072_256_TB (id_number int, name text encrypted with (column_encryption_key = RSA_3072_256_CEK, encryption_type = DETERMINISTIC),credit_card varchar(19) encrypted with (column_encryption_key = RSA_3072_256_CEK, encryption_type = DETERMINISTIC));

7ff5b4c0a760a54ef03bc40ca03291d6.jpeg

  • 插入数据

INSERT INTO RSA_3072_256_TB VALUES (1,'joe','6217986500001288393');
INSERT INTO RSA_3072_256_TB VALUES (2,'joy','6219985678349800033');

af03d6546dbfc8ff6f08b9ff6523aefe.jpeg

  • 客户端查询数据

select * from RSA_3072_256_TB;

cf89c91e786d4fcc0151a16e08664638.jpeg

  • 通过不加 -C 登录查询数据

gsql -p 15400 -d postgres -U qmttest -r
select * from RSA_3072_256_TB;

040738819d17b1f12bab3c61ce08b97f.jpeg

3.3 使用RSA_2048_128_CEK创建加密表

名称:RSA_2048_128_TB

CREATE TABLE RSA_2048_128_TB (id_number int, name text encrypted with (column_encryption_key = RSA_2048_128_CEK, encryption_type = DETERMINISTIC),credit_card varchar(19) encrypted with (column_encryption_key = RSA_2048_128_CEK, encryption_type = DETERMINISTIC));

c345f7c2eebcc56ce49cb48e5e436250.jpeg

  • 插入数据

INSERT INTO RSA_2048_128_TB VALUES (1,'joe','6217986500001288393');
INSERT INTO RSA_2048_128_TB VALUES (2,'joy','6219985678349800033');

9eb311bf3a02a40bec9b327b996813d1.jpeg

  • 客户端查询数据

select * from RSA_2048_128_TB;

f2b6b6df5cf2b42a71ec952ae015770b.jpeg

  • 通过不加 -C 登录查询数据

gsql -p 15400 -d postgres -U qmttest -r
select * from RSA_2048_128_TB;

7aa8fff7fd2904024dc25dd8cf3a60dc.jpeg

3.4 使用RSA_3072_128_CEK创建加密表

名称:RSA_3072_128_TB

CREATE TABLE RSA_3072_128_TB (id_number int, name text encrypted with (column_encryption_key = RSA_3072_128_CEK, encryption_type = DETERMINISTIC),credit_card varchar(19) encrypted with (column_encryption_key = RSA_3072_128_CEK, encryption_type = DETERMINISTIC));

8fabcc33831f48a46c67e96a1528cd44.jpeg

  • 插入数据

INSERT INTO RSA_3072_128_TB VALUES (1,'joe','6217986500001288393');
INSERT INTO RSA_3072_128_TB VALUES (2,'joy','6219985678349800033');

f1087556823d1742ac03ac7f064e9d18.jpeg

  • 客户端查询数据

select * from RSA_3072_128_TB;

d7f642633f3d5d190d981e617438a8a6.jpeg

  • 通过不加 -C 登录查询数据

gsql -p 15400 -d postgres -U qmttest -r
select * from RSA_3072_128_TB;

40b14bf87c9d06b13a9b21e46377dd8d.jpeg

3.5 使用SM2_SM4_SM3_CEK创建加密表

名称:SM2_SM4_SM3_TB

CREATE TABLE SM2_SM4_SM3_TB (id_number int, name text encrypted with (column_encryption_key = SM2_SM4_SM3_CEK, encryption_type = DETERMINISTIC),credit_card varchar(19) encrypted with (column_encryption_key = SM2_SM4_SM3_CEK, encryption_type = DETERMINISTIC));

8c93eb067b5e769b7c6411a3932f025c.jpeg

  • 插入数据

INSERT INTO SM2_SM4_SM3_TB VALUES (1,'joe','6217986500001288393');
INSERT INTO SM2_SM4_SM3_TB VALUES (2,'joy','6219985678349800033');

f0c3d8e762241e4ee146e59408c43c36.jpeg

  • 客户端查询数据

select * from SM2_SM4_SM3_TB;

96c6ea1a682a73f7b079ea7c0a4dda9d.jpeg

  • 通过不加 -C 登录查询数据

gsql -p 15400 -d postgres -U qmttest -r
select * from SM2_SM4_SM3_TB;

5aaf882b139d05ade9f7f2388e7615e2.jpeg

4、组合加密方式验证

同一个表中,不同的列使用不同的加密方式。

  • 表名称:all_TB

说明:不同的列,使用不同的加密方式。
列id_number:不使用加密
列name1:RSA_2048_256_CEK,列credit_card1:RSA_3072_256_CEK,
列name2:RSA_2048_128_CEK,列credit_card2:RSA_3072_128_CEK,
列name3:SM2_SM4_SM3_CEK

CREATE TABLE all_TB (id_number int, name1 text encrypted with (column_encryption_key = RSA_2048_256_CEK, encryption_type = DETERMINISTIC),credit_card1 varchar(19) encrypted with (column_encryption_key = RSA_3072_256_CEK, encryption_type = DETERMINISTIC),name2 text encrypted with (column_encryption_key = RSA_2048_128_CEK, encryption_type = DETERMINISTIC),credit_card2 varchar(19) encrypted with (column_encryption_key = RSA_3072_128_CEK, encryption_type = DETERMINISTIC),name3 text encrypted with (column_encryption_key = SM2_SM4_SM3_CEK, encryption_type = DETERMINISTIC));

365555d2d0230fbe39e01c91409e6277.jpeg

  • 插入数据

INSERT INTO all_TB VALUES (1,'joe1','6217986500001288393','joe2','6217986500001288393','joe3');
INSERT INTO all_TB VALUES (2,'joy1','6219985678349800033','joy2','6219985678349800033','joy3');

badd334632a73d84dc57c428ad9199f1.jpeg

  • 客户端查询数据

select * from all_TB;

3c4852fb9e842178fd5322b1c426d1e2.jpeg

  • 通过不加 -C 登录查询数据

gsql -p 15400 -d postgres -U qmttest -r
select * from all_TB;

bbc95a39f4befa023915b9cb4c6467fe.jpeg

四、总结

  1. 在openGauss 3.0 版本中,国密SM2+SM4_SM3组合使用中,在查询时,是有问题的,openGauss 5.0.0 这个版本中,这个问题已经解决。

  2. 同一个表中,列可以是加密的,也可以是不加密的。

  3. 同一个表中,可以有不同的加密方式。

  4. 想要查询到明文,客户端必须有密钥文件,密钥文件需要进行妥善保管。


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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue中的深度监听(Deep Watch):详细解析与实际示例

Vue中的深度监听(Deep Watch):详细解析与实际示例 Vue.js 是一款流行的前端 JavaScript 框架,其响应式系统是其核心特性之一。通过响应式系统,Vue允许开发者轻松地监听数据的变化并对其做出响应。在某些情况下&#x…

Redis的softMinEvictableIdleTimeMillis和minEvictableIdleTimeMillis参数

背景: Redis的softMinEvictableIdleTimeMillis,minEvictableIdleTimeMillis是一个令人疑惑两个参数,特别是当它和minIdle组合起来时就更难理解了,本文就来梳理下他们的之间的关系 softMinEvictableIdleTimeMillis,mi…

2023智慧云打印小程序源码多店铺开源版 +前端

智慧自助云打印系统/智慧云打印小程序源码 前端 这是一款全新的基于Thinkphp的最新自助打印系统,最新UI界面设计的云打印小程序源码

【Java 基础篇】Java网络编程实战:P2P文件共享详解

Java网络编程是现代软件开发中不可或缺的一部分,因为它允许不同计算机之间的数据传输和通信。在本篇博客中,我们将深入探讨Java中的P2P文件共享,包括什么是P2P文件共享、如何实现它以及一些相关的重要概念。 什么是P2P文件共享? …

投资理财知识分享:100个金融知识专业术语

大家好,我是财富智星,今天跟大家分享一下投资理财知识方面100个金融知识专业术语,希望能帮助大家了解更多金融知识。 1. 股票:代表对一家公司所有权的证券。 2. 债券:公司或政府发行的借款证券。 3. 投资组合&#xff…

2023羊城杯决赛赛后记录

文章目录 前言ez_SSTIbreakfix easyuploadbreakfix BabyMemobreakfix fuzee_rcebreakfix Oh! My PDFbreakfix easy00aeshacker黑客的秘密LmqHmAsk 前言 参加了羊城杯决赛,一直都没自己重新搭环境对题目做一个复现和记录,当时还有有几道题是没有弄出来的…

中睿天下受邀参加2023北京数字交通大会暨博览会并发表主题演讲

2023年9月11号由中国交通报社、中国交通运输协会联合主办的2023北京数字交通大会暨博览会(简称大会暨博览会)在北京中国国际展览中心(新馆)举行。这次大会主题是“数字新时代、交通新未来”,将聚焦数字交通创新发展&am…

如何使用show profile 查看sql的执行周期

修改配置文件/etc/my.cnf 新增一行:query_cache_type1 重启mysql 先开启 show variables like %profiling%; set profiling1;select * from xxx ;show profiles; #显示最近的几次查询show profile cpu,block io for query 编号 #查看程序的执行步骤

Redis原理(一):Redis数据结构(上)

文章目录 1、 Redis数据结构-动态字符串2、 Redis数据结构-intset3、 Redis数据结构-Dict4、 Redis数据结构-ZipList5、 Redis数据结构-ZipList的连锁更新问题6、 Redis数据结构-QuickList1、 Redis数据结构-动态字符串 我们都知道Redis中保存的Key是字符串,value往往是字符串…

【Java 基础篇】Java 图书管理系统详解

介绍 图书管理系统是一种用于管理图书信息、借阅记录、用户信息等的软件系统。它可以帮助图书馆、书店或个人管理和组织图书资源,提供了方便的借阅和查询功能。在这篇博客中,我们将详细介绍如何使用Java编程语言创建一个简单的图书管理系统。 功能需求…

HTML+VUE+element-ui通过点击不同按钮展现不同页面

完整源码可以私聊我,需要一点点费用~ 页面展示 方案一 方案二 代码解释 方案一:使用v-show 这种方案只适合有两种页面 现在form表单中设置好要展现的页面名(此处的url没有作用不用管) 通过一个两个for循环分别将form表单填入…

基于 Socket 网络编程

基于 Socket 网络编程 前言一、基于Socket的网络通信传输(传输层)二、UDP 的数据报套接字编程1、UDP 套接字编程 API2、使用 UDP Socket 实现简单通信 三、TCP 流套接字编程1、TCP 流套接字编程 API2、使用 TCP Socket 实现简单通信3、使用 Tcp 协议进行…

GIT 提交过滤非必要文件

1、git ls-files:该命令会列出Git仓库中管理的所有文件 2、git rm -r -f --cached . -f 是强制删除 最后的点 是删除所有 git rm -r --cached . 3、 进入Preferences->plugins 中下载一个(.ignore)插件  在项目本地new一个(.gitignore)的文件新增需要过滤文…

推荐一个AI人工智能技术网站(一键收藏,应有尽有)

1、Mental AI MentalAI(https://ai.ciyundata.com/)是一种基于星火大模型和文心大模型的知识增强大语言模型,专注于自然语言处理(NLP)领域的技术研发。 它具备强大的语义理解和生成能力,能够处理各种复杂的…

C语言自定义类型(下)

大家好,我们今天来学习C语言自定义类型剩下的内容。 目录 1.枚举 2.联合 1.枚举类型 枚举顾名思义就是一一列举。 把可能的取值一一列举。 一周的星期一到星期日是有限的7天,可以一一列举。 性别有:男、女、保密,也可以一一列…

windows Visual Studio 2022 opengl开发环境配置

1. 安装glew(GL), GLFW, glm, soil2-debug 还需要premake生成visual studio solution cmake for windows也要安装一个, 但是不用安装MinGW64, bug多 下载源码,找到xxx.sln文件用visual stidio打开solution编译代码,找到xxx.lib, xxx.dll文件…

python过滤敏感词

敏感词一般是指带有敏感政治倾向(或反执政党倾向)、暴力倾向、不健康色彩的词或不文明用语,论坛、网站管理员一般会设定一些敏感词,以防不当发言影响论坛、网站环境。若论坛、网站设置了敏感词,用户编辑的内容又含有敏…

Vue模板语法【下】事件处理器,表单、自定义组件、通信组件

目录 一、事件处理器 1.1常用的事件修饰符 1.2常用的按键修饰符 二,vue中的表单 三、自定义组件 四,通信组件 一、事件处理器 1.1常用的事件修饰符 Vue的事件修饰符是用来改变事件的默认行为或者添加额外的功能。以下是一些常用的事件修饰符及其…

checksec使用

checksec Relro:Full Relro(重定位表只读) Relocation Read Only, 重定位表只读。重定位表即.got 和 .plt个表。 Stack:No Canary found(能栈溢出) 栈保护。栈溢出保护是一种缓冲区溢出攻击缓解…

Lostash同步Mysql数据到ElasticSearch(二)logstash脚本配置和常见坑点

1. logstash脚本编写(采用单文件对应单表实例) 新建脚本文件夹 cd /usr/local/logstash mkdir sql & cd sql vim 表名称.conf #如: znyw_data_gkb_logstash.conf 建立文件夹,保存资源文件更新Id mkdir -p /data/logstash/data/last_r…