批量加密SQLSERVER 2000 的存储过程

批量加密SQLSERVER 2000 的存储过程,第1张

概述/*批量加密SQLSERVER  2000  的存储过程  /*             摘自:微软官方网站  */  =======================================================================================  下面给出了一个存储过程,它的作用是自动将当前数据库的用户存储过程加密。   DECLARE  @sp_

/*批量加密sqlSERVER  2000  的存储过程  /*             摘自:微软官方网站  */  =======================================================================================  下面给出了一个存储过程,它的作用是自动将当前数据库的用户存储过程加密。   DECLARE  @sp_name  nvarchar(400)  DECLARE  @sp_content  nvarchar(2000)  DECLARE  @asbegin  int  declare  @Now  datetime  select  @Now  =  getdate()  DECLARE  sp_cursor  CURSOR  FOR    SELECT  object_name(ID)  FROM  sysobjects  WHERE  xtype  =  'P'    AND  type  =  'P'    AND  crdate  <  @Now  AND  OBJECTPROPERTY(ID, 'IsMSShipped')=0   OPEN  sp_cursor   FETCH  NEXT  FROM  sp_cursor    INTO  @sp_name   WHILE  @@FETCH_STATUS  =  0  BEGIN  SELECT  @sp_content  =  text  FROM  syscomments  WHERE  ID  =  OBJECT_ID(@sp_name)    SELECT  @asbegin  =  PATINDEX  (  '%AS'  +  char(13)  +  '%', @sp_content)    SELECT  @sp_content  =  SUBSTRING(@sp_content, 1, @asbegin  -  1)    +  '  WITH  ENCRYPTION  AS'  +  SUBSTRING  (@sp_content, @asbegin+2, LEN(@sp_content))  SELECT  @sp_name  =  'DROP  PROCEDURE  ['  +  @sp_name  +  ']'  EXEC  sp_executesql  @sp_name    EXEC  sp_executesql  @sp_content  FETCH  NEXT  FROM  sp_cursor    INTO  @sp_name  END   CLOSE  sp_cursor    DEALLOCATE  sp_cursor   该存储过程利用了  sysobjects  和  syscomments  表,并巧妙地修改了原存储过程的  sql  定义语句,将  AS  修改为了  WITH  ENCRYPTION  AS,从而达到了加密存储过程的目的。本存储过程在  sql  Server  2000  上通过。  

总结

以上是内存溢出为你收集整理的批量加密SQLSERVER 2000 的存储过程全部内容,希望文章能够帮你解决批量加密SQLSERVER 2000 的存储过程所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1181492.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存