暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

5.6.8.2密钥环服务

原创 由迪 2020-09-10
928

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

  • 在SQL级别上,作为一组映射到对服务例程的调用的用户定义函数(UDF)。
  • 作为C语言接口,可以从服务器插件或用户定义的函数作为插件服务调用。

本节介绍如何使用密钥环服务功能来存储,检索和删除MySQL密钥环密钥库中的密钥。有关使用UDF的SQL接口的信息,请参见第6.4.4.9节“通用密钥环密钥管理功能”。有关常规密钥环的信息,请参见第6.4.4节“ MySQL密钥环”

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

阿“ 记录 ”在密钥库中包含的数据(密钥本身)和一个唯一的标识符,通过该键被访问。标识符分为两部分:

  • key_id:密钥ID或名称。 key_id开头的值 mysql_由MySQL Server保留。

  • user_id:会话有效用户ID。如果没有用户上下文,则该值为 NULL。该值实际上不必是 “ 用户 ”;含义取决于应用程序。

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

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

  • 每个函数返回0表示成功,返回1表示失败。
  • key_iduser_id 参数形成指示在钥匙圈使用哪个键的独特组合。
  • 该自key_type变量提供有关密钥的其他信息,例如其加密方法或预期用途。
  • 密钥环服务功能将密钥ID,用户名,类型和值视为二进制字符串,因此比较区分大小写。例如,的ID MyKeymykey引用不同的密钥。

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

  • my_key_fetch()

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

    句法:

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

    参数:

    • key_iduser_id:空对的字符串,成对形成一个唯一的标识符,指示要提取的密钥。
    • key_type:缓冲区指针的地址。该函数将指向空终止字符串的指针存储在该指针中,该字符串提供有关密钥的其他信息(添加密钥时存储)。
    • key:缓冲区指针的地址。该函数在其中存储指向包含已提取密钥数据的缓冲区的指针。
    • key_len:函数存储*key缓冲区大小的变量的地址(以字节为单位) 。

    返回值:

    返回0表示成功,失败则返回1。

  • my_key_generate()

    生成给定类型和长度的新随机密钥,并将其存储在密钥环中。钥匙具有的长度 key_len,并与从形成所述标识符相关联key_iduser_id。类型和长度值必须与基础密钥环插件支持的值一致。请参见第6.4.4.7节“支持的密钥环密钥类型和长度”

    句法:

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

    参数:

    • key_iduser_id:空对的字符串,它们成对地构成要生成的密钥的唯一标识符。
    • key_type:以空值结尾的字符串,提供有关密钥的其他信息。
    • key_len:要生成的密钥的大小(以字节为单位)。

    返回值:

    返回0表示成功,失败则返回1。

  • my_key_remove()

    从钥匙圈中删除钥匙。

    句法:

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

    参数:

    • key_iduser_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_iduser_id:空对的字符串,它们成对形成要存储的密钥的唯一标识符。
    • key_type:以空值结尾的字符串,提供有关密钥的其他信息。
    • key:包含要存储的密钥数据的缓冲区。
    • key_lenkey缓冲区的大小(以字节为单位) 。

    返回值:

    返回0表示成功,失败则返回1。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论