5.3.1 使用列级别数据加密来保护信用卡数据
下列示例使用列级别加密来保护信用卡数据。
使用列级别加密来保护信用卡数据:
1. 创建表:create table customer (id char(30), creditcard lvarchar(67));
2. 插入加密数据:
a. 设置会话密码:SET ENCRYPTION PASSWORD "credit card number is encrypted";
b. 加密数据。
INSERT INTO customer VALUES
("Alice", encrypt_aes("1234567890123456"));
INSERT INTO customer VALUES
("Bob", encrypt_aes("2345678901234567"));
3. 使用解密函数查询加密数据。
SET ENCRYPTION PASSWORD "credit card number is encrypted";
SELECT id FROM customer
WHERE DECRYPT_CHAR(creditcard) = "2345678901234567";
重要: 加密数据值比相应的未加密数据占用更多的存储空间。列宽足够存储明文的列可能需要
增大宽度才能支持列级别加密或单元级别加密。如果要将加密值插入声明宽度小于加密字符串
的列,那么列存储截断后的值,该值无法被解密。
有关加密安全性的更多信息,请参阅《GBase 8s 管理员指南》。
有关内置加密和解密函数语法和存储要求的更多信息,请参阅《GBase 8s SQL 指南:语法》。
GBase 8s V8.8 SQL 指南:教程-5.3.1
最新推荐文章于 2024-03-19 16:05:59 发布