You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MariaDB是否有Postgres pgp_sym_encrypt等效函数?数据迁移方案咨询

MariaDB 对应PGP加密功能及数据迁移方案

一、MariaDB的类似加密解密功能

MariaDB 支持PGP对称加密解密,需要先启用crypto插件:

INSTALL SONAME 'crypto';

启用后,可用pgp_sym_encrypt()和pgp_sym_decrypt()实现和PostgreSQL一致的逻辑,语法高度兼容:

插入加密数据示例

INSERT INTO a_table (
  normal_value,
  secret_value
) VALUES (
  'normal',
  pgp_sym_encrypt('0.123', 'secret_key')
);

查询解密数据示例

SELECT
  normal_value,
  CAST(pgp_sym_decrypt(secret_value, 'secret_key') AS DOUBLE)
FROM a_table;

注:MariaDB的pgp_sym_encrypt默认接受字符串输入,无需额外类型转换,用法和PostgreSQL基本一致。

二、数据迁移的可选方案

方案1:明文中转迁移(最直接)

先从PostgreSQL导出解密后的明文数据,再用MariaDB的加密函数重新加密插入:

  1. 在PostgreSQL执行导出明文的查询:
SELECT
  normal_value,
  CAST(pgp_sym_decrypt(secret_value, 'secret_key') AS TEXT) AS secret_value_plain
FROM a_table;

将结果保存为CSV或SQL脚本。

  1. 在MariaDB中插入并加密:
INSERT INTO a_table (normal_value, secret_value)
VALUES
  ('normal', pgp_sym_encrypt('0.123', 'secret_key')),
  -- 其他数据行...
;

优缺点:操作简单易验证;但中间过程会出现明文数据,需确保传输、存储过程的安全性(比如加密传输、用完即删明文文件)。

方案2:直接迁移加密数据,兼容解密

由于PGP是通用加密标准,PostgreSQL用pgp_sym_encrypt生成的加密数据,可直接在MariaDB中用pgp_sym_decrypt解密:

  1. 将PostgreSQL中的a_table(包含加密的secret_value)直接导出为SQL或CSV,导入MariaDB。
  2. 直接用MariaDB的解密函数查询:
SELECT
  normal_value,
  CAST(pgp_sym_decrypt(secret_value, 'secret_key') AS DOUBLE)
FROM a_table;

如果需要统一加密格式(实际无需转换,已兼容),也可批量更新:

UPDATE a_table
SET secret_value = pgp_sym_encrypt(pgp_sym_decrypt(secret_value, 'secret_key'), 'secret_key');

优缺点:全程无明文落地,安全性高;无需额外转换逻辑,迁移成本低。

方案3:替换为MariaDB内置AES加密(轻量替代)

如果不需要PGP兼容性,可改用MariaDB内置的AES加密函数(无需额外插件),性能更优:

  1. 从PostgreSQL导出明文数据(同方案1第一步)。
  2. 在MariaDB中用AES_ENCRYPT插入:
INSERT INTO a_table (
  normal_value,
  secret_value
) VALUES (
  'normal',
  AES_ENCRYPT('0.123', 'secret_key')
);
  1. 查询时用AES_DECRYPT解密:
SELECT
  normal_value,
  CAST(AES_DECRYPT(secret_value, 'secret_key') AS DOUBLE)
FROM a_table;

优缺点:无需安装插件,性能更好;但和原PGP加密逻辑不兼容,需修改应用代码中的加密解密语句。

内容的提问来源于stack exchange,提问作者DJDaveMark

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 19:25:25