文档首页
MySQL 9.0 参考手册
相关文档 下载此手册
PDF (美国信纸) - 40.0Mb
PDF (A4) - 40.1Mb
手册页 (TGZ) - 258.2Kb
手册页 (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


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

8.4.4.3 密钥环插件安装

密钥环服务消费者要求安装密钥环组件或插件。

注意

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

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

MySQL 提供以下密钥环插件选项。

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

  • keyring_aws:与 Amazon Web Services Key Management Service 通信作为密钥生成的后端,并使用本地文件进行密钥存储。在 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

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

完成任何特定于插件的配置后,启动服务器。通过检查信息模式 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 加载密钥环插件。