约束条件

最近更新时间: 2019-11-22 19:46:15

为应用系统更好的接入云加密数据库系统,对应用系统所使用的SQL语句存在着以下约束条件:
1)不支持在一个表达式里存在多个加密运算。建议应用系统对相关sql语句进行优化和拆分。(加法和减法算同一类加密运算、乘法和除法算同一类加密运算)
例如:select a2+3 from t_table (a2+3 存在加和乘两种)
select * from t_table where a+3=4 (a+3=4 存在加和精确两种)
2)不支持在聚合函数中进行加密运算。建议对sql进行拆分。
例如:select MAX(ad_money+2) from adtest1; (MAX(ad_money+2)存在max函数和加法运算)
select sum(ad_money+2) from adtest1; (sum(ad_money+2)存在sum函数和加法运算)
3)不支持不同加密算法列之间的运算和比较等。建议应用系统在设计列是否加密时充分考虑此条件。
例如:a列为明文,b列为功能加密,不论a、b在或不在同一张表中,a、b两列都不能在SQL语句中直接运算
select a + b from t_table (错误)
select * from t_table where a > b (错误)
select a, b from t_table (正确,a,b间没有运算关系)
select * from t_table where a>1 and b>2 (正确)