使用触发器自动加密mysql字段

在网上下载了开源CRM系统来管理销售相关的工作成果,但是对于联系人电话,都是公司的机密资产,不能让人可以直接导出数据表,将所有客户联系人方式都拿走。因此决定对手机字段进行加密,看了下CRM源码,很多地方都是使用select *来选择的表数据,如果直接修改代码,修改的地方会很多。就打算使用mysql触发器在数据插入和更新的时候自动加密数据,我们选择的时候使用视图来将数据进行解密。下面介绍一下如何完成这个操作。

1. 在cst_customer表中添加触发器,在插入之前更新手机字段。

BEGIN
    SET new.mobile = to_base64(encode(new.mobile,'salt'));
END

2. 在更新之前更新手机字段。

BEGIN
    if old.mobile!=new.mobile then
        SET new.mobile = to_base64(encode(new.mobile,'salt'));
    end if;
END

3. 创建视图,选择表数据的时候自动解密字段。

create view v_customer
(
customer_id
,name
,customer_no
,create_user_id
,owner_user_id
,create_time
,next_time
,conn_time
,conn_body
,linkman
,source
,grade
,industry
,mobile
,tel
,address
,intro
) as 
select
customer_id
,name
,customer_no
,create_user_id
,owner_user_id
,create_time
,next_time
,conn_time
,conn_body
,linkman
,source
,grade
,industry
,decode(from_base64(mobile),'salt') as mobile
,tel
,address
,intro
from cst_customer

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值