加密和解密函数可支持使用数据加密特性的两种方式,即
列级别和
单元级别加密。
- 列级别加密意味着以同一口令(其可为词或短语)、同一密码和同一密码模式加密给定的列中所有值。
此种加密形式的用户应考虑不使用这些函数的 hint 特性,而是在其某个其他位置存储记忆该口令的助记符提示。否则,相同的 hint 会占据包含加密的值的每行的磁盘空间。
- 单元级别加密意味着在加密的数据的列内使用许多不同的口令(或不同的密码或密码模式)。
这种加密的使用也称为行-列级别或集合-列级别加密。与列级别加密相比,这使得数据管理任务更加复杂,因为如果需要不同的口令来加密同一表中的不同行,则不可能编写单个
SELECT 语句来取回所有解密的数据。然而,在某些情况下,个别的用户可能需要此技术来保护个人的数据。
要保护数据安全性和机密性,数据库服务器不在系统目录中存储信息来表明是否任何表(或任何列或行)包括加密的数据。类似地,
GBase 8s
的逻辑日志不记录 SET ENCRYPTION 语句,也不调用加密或解密函数。(然而,安全审计的“可信的工具”特性可使用 'STEP' 审计事件助记符来记录 SET
ENCRYPTION 语句的执行,并可使用 'CRPT' 审计事件助记符来记录对
DECRYPT_CHAR 或
DECRYPT_BINARY 的调用成功还是不成功。)