28.3.2 钥匙圈服务

MySQL Server 支持密钥环服务,该服务使内部服务器组件和插件能够安全地存储敏感信息,以便以后检索。本节介绍如何使用密钥环服务功能来存储,检索和删除 MySQL 密钥环密钥库中的密钥。密钥环服务功能的 SQL 接口也可以作为一组用户定义的功能(UDF)使用。参见第 6.4.4.8 节“通用密钥环密钥 Management 功能”。有关常规密钥环的信息,请参见第 6.4.4 节“ MySQL 密钥环”

密钥环服务使用启用的任何基础密钥环插件(如果有)。如果未启用任何密钥环插件,则密钥环服务调用将失败。

密钥库中的“记录”由数据(密钥本身)和用于访问密钥的唯一标识符组成。标识符分为两部分:

实现密钥环 UDF 接口的函数将CURRENT_USER()的值作为user_id值传递给密钥环服务函数。

密钥环服务功能具有以下共同 Feature:

这些密钥环服务功能可用:

对密钥环及其类型进行反混淆和检索。该函数为用于存储返回的键和键类型的缓冲区分配内存。当不再需要内存时,调用者应将其清零或混淆,然后释放它。

Syntax:

my_bool my_key_fetch(const char *key_id, const char **key_type,
                     const char* user_id, void **key, size_t *key_len)

Arguments:

Return value:

返回 0table 示成功,返回 1table 示失败。

生成给定类型和长度的新随机密钥,并将其存储在密钥环中。密钥的长度为key_len,并且与由key_iduser_id形成的标识符关联。类型和长度值必须与基础密钥环插件支持的值一致。参见第 6.4.4.6 节“支持的密钥环密钥类型和长度”

Syntax:

my_bool my_key_generate(const char *key_id, const char *key_type,
                        const char *user_id, size_t key_len)

Arguments:

Return value:

返回 0table 示成功,返回 1table 示失败。

从钥匙圈中删除钥匙。

Syntax:

my_bool my_key_remove(const char *key_id, const char* user_id)

Arguments:

Return value:

返回 0table 示成功,返回 1table 示失败。

混淆密钥并将其存储在密钥环中。

Syntax:

my_bool my_key_store(const char *key_id, const char *key_type,
                     const char* user_id, void *key, size_t key_len)

Arguments:

Return value:

返回 0table 示成功,返回 1table 示失败。

首页