GBase 8s 支持内建的加密和解密函数。
元素 | 描述 | 限制 | 语法 |
---|---|---|---|
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 标签的列中的安全标签。