10bet网址
MySQL 8.0参考手册
相关文件10bet官方网站 下载本手册 从本手册中摘录

5.6.9.2键控服务

MySQL Server支持键控服务,使内部组件和插件能够安全地存储敏感信息以供稍后检索。MySQL发行版提供了一个可在两个级别访问的键控接口:

  • 在SQL级别,作为一组用户定义的函数(UDF),该函数将映射到服务例程的调用。

  • 作为C语言界面,可作为来自服务器插件或用户定义的函数的插件服务。

本节介绍如何使用键控服务功能存储,检索和删除MySQL Keyring密钥库中的键。有关使用UDFS的SQL接口的信息,第6.4.4.14节“通用键控钥匙管理功能”。对于普通键入信息,请参阅第6.4.4节“MySQL键入”

键控服务使用底层键入插件,如果有的话。如果没有启用键控插件,则键控服务调用失败。

一种记录在密钥库中由数据(关键本身)和访问密钥的唯一标识符组成。标识符有两部分:

  • key_id.:密钥ID或名称。key_id.从中开始的值mysql_由MySQL Server保留。

  • 用户身份:会话有效的用户ID。如果没有用户上下文,则此值可以是空值。价值实际上不需要用户;意义取决于应用程序。

    实现Keyring UDF接口的功能通过该值当前用户()作为用户身份键控服务功能的值。

KeyRing服务功能具有以下特征:

  • 每个函数返回0以进行成功,1个以进行故障。

  • key_id.用户身份参数形成一个唯一的组合,指示要使用的键控中的哪个键。

  • key_type.参数提供有关密钥的其他信息,例如其加密方法或预期用途。

  • KeyRing服务功能将密钥ID,用户名,类型和值视为二进制字符串,因此比较区分大小写。例如,ID的ID我的钥匙我的钥匙请参阅不同的键。

这些键控服务功能可用:

  • my_key_fetch()

    Deobfuscates并从钥匙环上检索钥匙,以及其类型。该函数分配用于存储返回的键和键类型的缓冲区的内存。呼叫者应在不再需要时零或混淆内存,然后释放它。

    句法:

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

    论点:

    • key_id.用户身份:返回的字符串,作为一对形成一个唯一标识符,指示要获取的键。

    • key_type.:缓冲区指针的地址。该函数将其存储到指向空端接的字符串的指针,该字符串提供有关密钥的其他信息(在添加密钥时存储)。

    • 钥匙:缓冲区指针的地址。该函数将其存储到指向包含获取密钥数据的缓冲区的指针。

    • key_len.:该变量的地址函数将大小存储在其中字节的字节中*钥匙缓冲。

    返回值:

    成功返回0,1进行故障。

  • my_key_generate()

    生成给定类型和长度的新随机键,并将其存储在键控中。关键的长度key_len.并且与由此形成的标识符相关联key_id.用户身份。类型和长度值必须与底层键控插件支持的值一致。看第6.4.4.12节,“支持键控键类型和长度”

    句法:

    Bool My_key_generate(const char * key_id,const char * key_type,const char * user_id,size_t key_len)

    论点:

    • key_id.用户身份:作为对形成要生成的键的唯一标识符,为一对的空终止字符串。

    • key_type.:一个空终止的字符串,提供有关该密钥的其他信息。

    • key_len.:要生成的关键字的大小。

    返回值:

    成功返回0,1进行故障。

  • my_key_remove()

    从钥匙圈中删除密钥。

    句法:

    Bool My_key_remove(const char * key_id,const char * user_id)

    论点:

    • key_id.用户身份:作为对形成要删除的键的唯一标识符,为一对终止字符串。

    返回值:

    成功返回0,1进行故障。

  • my_key_store()

    混淆并存储钥匙圈中的一个键。

    句法:

    BOOL MY_KEY_STORE(const char * key_id,const char * key_type,const char * user_id,void * key,size_t key_len)

    论点:

    • key_id.用户身份:作为对形成要存储的键的唯一标识符,为对作为对的空终止字符串。

    • key_type.:一个空终止的字符串,提供有关该密钥的其他信息。

    • 钥匙:包含要存储的密钥数据的缓冲区。

    • key_len.:尺寸为字节钥匙缓冲。

    返回值:

    成功返回0,1进行故障。