加密和解密函数

GBase 8s 支持内建的加密和解密函数。

加密函数 ENCRYPT_AESENCRYPT_TDES 返回将 data 参数加密的 encrypted_data 值。反过来,解密函数 DECRYPT_CHARDECRYPT_BINARYencrypted_data 参数返回明文 data 值。使用此语法来调用这些函数:
加密和解密函数
元素 描述 限制 语法
data 要被加密的明文字符串、变量或类型 BLOB 或 CLOB 的大对象 必须为字符串或 BLOB 数据类型 表达式
encrypted_data 包含来自 ENCRYPT_AES 或来自 ENCRYPT_TDES 输出的字符串或变量 加密需要加密口令 表达式
hint 您在此定义的字符串。缺省的是来自定义了 password 的 SET ENCRYPTION 的 WITH HINT 子句的值。 不多于 32 字节 用引号括起的字符串
password 加密函数定义的字符串。缺省的是由 SET ENCRYPTION 语句定义的会话口令值 至少 6 字节,但不多于 128 字节 用引号括起的字符串

您可从 DML 语句之内或以 EXECUTE FUNCTION 语句来调用这些加密和解密函数。

对于网络之上的分布式操作,所有参与的数据库服务器必须都支持这些(或等同于)函数。如果网络不安全,则 DBSA 必须启用加密通信支持模块(ENCCSM)来提供数据库服务器与客户端系统之间的数据加密,以便于避免将口令作为明文传送。

加密或解密调用会降低在其内调用这些函数的 SQL 语句的性能,但不对其他语句产生影响。然而,如果您在一个索引键列中,或在其上定义约束的列中存储加密的数据,则 GBase 8s 不可强制该约束,且 DML 语句不可使用该索引。

类似地,请不要对在分片的表的分片键表达式中引用其值的列进行加密。

你不可加密类型 IDSSECURITY 标签的列中的安全标签。