/*批量加密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 的存储过程所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)