CREATE CLIENT MASTER KEY
功能描述
密态等值查询特性使用多级加密模型,主密钥加密列密钥,列密钥加密数据。本语法用于创建主密钥对象。
注意事项
- 本语法属于全密态数据库特有语法。
- 连接数据库时,在数据库驱动侧,需开启密态等值查询特性连接参数,才可执行本语法。
- 主密钥由外部密钥管理者提供,本语法仅处理密钥来源、密钥ID等信息,已支持的外部密钥管理者包括:
- 华为云密钥管理服务huawei_kms。
- 用户密码派生密钥或直接提供密钥user_token。
- 在使用本语法前,请参考《特性指南》中“设置密态等值查询”章节,在数据库驱动侧,为外部密钥管理者设置环境变量。
语法格式
CREATE CLIENT MASTER KEY client_master_key_name WITH (KEY_STORE = key_store_name, KEY_PATH = key_path_value, ALGORITHM = algorithm_type);
参数说明
- client_master_key_name
该参数作为密钥对象名,在同一命名空间下,需满足命名唯一性约束。
取值范围:字符串,需符合标识符命名规范。
- KEY_STORE
外部密钥管理者。取值见表1。
当KEY_STORE为user_token时,无需用户提供KEY_PATH参数。
- KEY_PATH
由外部密钥管理者管理某个的密钥,不同密钥管理者格式不同。取值为字符串,详见表1。字符串由单引号或双引号包含,如果字符串长度超过64,则只能使用单引号包含。
- ALGORITHM
密钥用于何种加密算法。取值见表1。
表1 针对不同密钥管理者的参数值 KEY_STORE
KEY_PATH
ALGORITHM
huawei_kms
格式:‘{KmsApiUrl}/{密钥ID}'
参考:'https://kms.{项目}.myhuaweicloud.com/v1.0/{项目ID}/kms/{密钥ID}'
示例:'https://kms.cn-north-4.myhuaweicloud.com/v1.0/00000000000000000000000000000000/kms/00000000-0000-0000-0000-000000000000'
AES_256
SM4
user_token
不需用户提供KEY_PATH
AES_256_CBC
AES_256_GCM
SM4
示例
- user_token场景。
--解压GaussDB-Kernel_数据库版本号_操作系统版本号_64bit_Gsql.tar.gz安装包,找到脚本gsql_env.sh。 --通过脚本,自动配置环境变量。 source gsql_env.sh --连接数据库,使用特权账号,创建新用户例如alice。 gsql -p 端口号 -d postgres -r gaussdb=# CREATE USER alice PASSWORD '*******'; gaussdb=# \q --连接数据库,务必使用"-C"参数。 gsql -p 端口号 -d postgres -U alice -r -C --设置用户密码或派生密钥,gsql可以通过password=stdin或key_token=stdin进行交互式输入。 --设置用户密码,密码长度不小于8,包含大、小写字母、数字、符号的其中3种。 gaussdb=> \key_info keyType=user_token,password=********* --或者直接通过对接满足安全强度的密钥,此处密钥为16进制编码。 gaussdb=> \key_info keyType=user_token,key_token=******************************** --创建主密钥。 gaussdb=> CREATE CLIENT MASTER KEY alice_cmk WITH ( KEY_STORE = user_token , ALGORITHM = AES_256_GCM ); --删除主密钥。 gaussdb=> DROP CLIENT MASTER KEY alice_cmk; gaussdb=> \q --连接数据库,使用特权账号,删除用户alice。 gsql -p 端口号 -d postgres -r gaussdb=# DROP USER alice;