1、秽颢擤崮存储过程(sp_EncryptObject)加密的方法是在存储过程,函数,视图的“As”位置前加上“with 髫潋啜缅encryption”;如果是触发器,就在“for”位置前加“with encryption”。如果触发器是{ AFTER | INSTEAD OF} 需要修改下面代码"For"位置:
2、存储过程的完整代码:
3、解密过程,最重要采用异或方法代码:[字符1]经过函数fn_x(x)加密变成[加密后字符1],如果我们已知[加密后字符1],反过来查[字符1],可以这样:[字符1] = [字掼屐磴磨符2] ^ fn_x([字符2]) ^ [加密后字符1]
4、在一个测试环境中(DB: Test),先执行上面的加密存储过程(sp_EncryptObject)和解密存储过程(sp_EncryptObject);再创建两个表:TableA & TableB
5、我们要创秃赈沙嚣建6个未加密的对象(对象类型包含 'P','V','TR','FN',泌驾台佐39;IF','TF'):视图(myView):
6、触发器(MyTrigger)代码
7、存储过程(MyProc)代码:
8、用户定义表值函数(TF)(MyFunction_TF)代码
9、内联表值函数(IF) (MyFunction_IF)代码
10、标量函数(FN)(MyFunction_FN)代码
11、当执行完了上面的1-6步骤的脚本,我们通过查询系统视图sys.sql_modules,可以看到未加密前的定义信息