惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园_首页
量子位
D
DataBreaches.Net
博客园 - 司徒正美
J
Java Code Geeks
博客园 - 【当耐特】
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
aimingoo的专栏
aimingoo的专栏
B
Blog
The Cloudflare Blog
D
Docker
I
InfoQ
爱范儿
爱范儿
MongoDB | Blog
MongoDB | Blog
腾讯CDC
月光博客
月光博客
Hugging Face - Blog
Hugging Face - Blog
Microsoft Azure Blog
Microsoft Azure Blog
Vercel News
Vercel News
阮一峰的网络日志
阮一峰的网络日志
小众软件
小众软件
S
SegmentFault 最新的问题
GbyAI
GbyAI
有赞技术团队
有赞技术团队

博客园 - 御天六龙

"AV终结者"病毒发作症状及防范措施&和杀毒有关的网页和软件都无法打开或者安装(重装系统后也一样), 如何查看表结构信息 无数据库日志文件恢复数据库方法两则 浅谈数据库设计技巧 恢复被置疑的数据库 update语句更新时我忘了限制条件了 更新了所有纪录 有办法恢复吗? SQL Server数据汇总完全解析 SQL脚本生成的一些BUG 老外对T-sql的研究:一个问题多种方法 使用ActiveX控件开发网页常见的问题 SQL Server中利用存储过程来高性能地进行分页 Sql server数据库开发常用汇总 小记存储过程中经常用到的本周,本月,本年函数 测试用到的SQL语句 SQL Server中全角和半角字符的比较问题 配置SQL Server 2000选项 数据库主键设计之思考 SQL Sever2000绿色版,告别软件分发时安装SQL的烦恼 数据采集服务程序--ADO连续插入记录,2天后,插入速度明显变慢,求解原因?
如何批量加密存储过程?
御天六龙 · 2006-10-01 · via 博客园 - 御天六龙

--引用
http://www.microsoft.com/china/technet/columns/tipsfortechs/wsqs3.asp
综合实例
下面给出了一个存储过程,它的作用是自动将当前数据库的用户存储过程加密。
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 上通过。