文档首页
MySQL 8.4 参考手册
相关文档 下载本手册
PDF (US Ltr) - 39.9Mb
PDF (A4) - 40.0Mb
手册页 (TGZ) - 258.5Kb
手册页 (Zip) - 365.5Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 参考手册  /  ...  /  密钥环插件安装

8.4.4.3 密钥环插件安装

密钥环服务使用者需要安装密钥环组件或插件。

注意

一次只能启用一个密钥环组件或插件。启用多个密钥环组件或插件不受支持,结果可能与预期不符。

如果您需要支持持久系统变量值的安全的存储,则必须在 MySQL 服务器实例上启用密钥环组件,而不是密钥环插件,因为密钥环插件不支持该功能。请参见 持久化敏感系统变量.

MySQL 提供以下密钥环插件选择

  • keyring_okv: 一款用于与兼容 KMIP 的后端密钥环存储产品(如 Oracle Key Vault 和 Gemalto SafeNet KeySecure Appliance)一起使用的 KMIP 1.1 插件。 在 MySQL 企业版发行版中提供。

  • keyring_aws: 与 Amazon Web Services 密钥管理服务通信,作为密钥生成的后端,并使用本地文件进行密钥存储。 在 MySQL 企业版发行版中提供。

  • keyring_hashicorp: 与 HashiCorp Vault 通信,作为后端存储。 在 MySQL 企业版发行版中提供。

为了能够被服务器使用,插件库文件必须位于 MySQL 插件目录(由 plugin_dir 系统变量指定的目录)中。 如果需要,请通过在服务器启动时设置 plugin_dir 的值来配置插件目录位置。

密钥环组件或插件必须在服务器启动序列的早期加载,以便其他组件可以在自己的初始化过程中根据需要访问它。 例如,InnoDB 存储引擎使用密钥环进行表空间加密,因此密钥环组件或插件必须在 InnoDB 初始化之前加载并可用。

每个密钥环插件的安装方式都类似。 以下说明描述了如何安装 keyring_okv。 要使用其他密钥环插件,请将它的名称替换为 keyring_okv

keyring_okv 插件库文件的基名称为 keyring_okv。 文件名后缀因平台而异(例如,Unix 和类 Unix 系统的 .so,Windows 的 .dll)。

要加载插件,请使用 --early-plugin-load 选项来指定包含它的插件库文件。 例如,在插件库文件后缀为 .so 的平台上,请在服务器 my.cnf 文件中使用以下行,根据需要调整 .so 后缀以适合您的平台

[mysqld]
early-plugin-load=keyring_okv.so

在启动服务器之前,请查看您选择的密钥环插件的说明,以了解该插件的特定配置说明

完成任何特定于插件的配置后,启动服务器。检查 Information Schema PLUGINS 表或使用 SHOW PLUGINS 语句(参见 第 7.6.2 节,“获取服务器插件信息”),以验证插件安装。例如

mysql> SELECT PLUGIN_NAME, PLUGIN_STATUS
       FROM INFORMATION_SCHEMA.PLUGINS
       WHERE PLUGIN_NAME LIKE 'keyring%';
+--------------+---------------+
| PLUGIN_NAME  | PLUGIN_STATUS |
+--------------+---------------+
| keyring_okv  | ACTIVE        |
+--------------+---------------+

如果插件初始化失败,请检查服务器错误日志以获取诊断消息。

除了 --early-plugin-load 以外,还可以使用其他方法加载插件,例如 --plugin-load--plugin-load-add 选项或 INSTALL PLUGIN 语句。但是,使用这些方法加载的密钥环插件可能在服务器启动序列中太晚,无法为使用密钥环的某些组件(例如 InnoDB)提供服务。

  • 使用 --plugin-load--plugin-load-add 加载插件是在 InnoDB 初始化之后进行的。

  • 使用 INSTALL PLUGIN 安装的插件在 mysql.plugin 系统表中注册,并在后续的服务器重启时自动加载。但是,因为 mysql.plugin 是一个 InnoDB 表,所以它中命名的任何插件只能在 InnoDB 初始化之后才能在启动期间加载。

如果在组件尝试访问密钥环服务时,没有可用的密钥环组件或插件,该组件将无法使用该服务。因此,该组件可能无法初始化,或者以有限的功能初始化。例如,如果 InnoDB 发现它在初始化时有加密的表空间,它将尝试访问密钥环。如果密钥环不可用,InnoDB 只能访问未加密的表空间。为了确保 InnoDB 也可以访问加密的表空间,请使用 --early-plugin-load 加载密钥环插件。