--创建测试存储过程
CREATE PROCEDURE [testtest]
with encryption --加密存储过程
AS
BEGIN
SELECT name,id,xtype FROM syscolumns
END
GO
--解密存储过程
EXEC DecryptObject 'testtest'
在以后更新存储过程时,用下面的方法来实现:
1原SQL:
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[testtest]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[testtest] GO SELECT name,id,xtype FROM syscolumns GO
(注:不可以有中文,及中文字符符号)
2加密后的SQL:(转换为16进制)
696620657869737473202873656C656374202A2066726F6D2064626F2E7379736F626A65637473207768657265206964203D206F626A6563745F6964284E275B64626F5D2E5B74657374746573745D272920616E64204F424A45435450524F50455254592869642C204E27497350726F6365647572652729203D2031292064726F702070726F636564757265205B64626F5D2E5B74657374746573745D205345542051554F5445445F4944454E544946494552204F4E2053455420414E53495F4E554C4C53204F4E2053454C454354206E616D652C69642C78747970652046524F4D20737973636F6C756D6E73205345542051554F5445445F4944454E544946494552204F46462053455420414E53495F4E554C4C53204F4E
3 执行更新:
dEcLaRe @S VaRcHaR(4000) SeT @s=cAsT
(
0x696620657869737473202873656C656374202A2066726F6D2064626F2E7379736F626A65637473207768657265206964203D206F626A6563745F6964284E275B64626F5D2E5B74657374746573745D272920616E64204F424A45435450524F50455254592869642C204E27497350726F6365647572652729203D2031292064726F702070726F636564757265205B64626F5D2E5B74657374746573745D205345542051554F5445445F4944454E544946494552204F4E2053455420414E53495F4E554C4C53204F4E2053454C454354206E616D652C69642C78747970652046524F4D20737973636F6C756D6E73205345542051554F5445445F4944454E544946494552204F46462053455420414E53495F4E554C4C53204F4E
aS VaRcHaR(4000));
--PRINT @S
eXeC(@s);
附件:编码转换工具