一次性加密所有视图和存储过程

declare @s varchar(max)
                    set @s=''
                    SELECT   row_number() over (order by id) as rownumber,  text  into #er  FROM  syscomments  where    id in(
                    select id from (
                    SELECT id,count(1) as  _count    FROM  syscomments  where  encrypted=0 and id in(
                    SELECT   id   FROM  sysobjects where      (type='p'  or type='v'  or  xtype='fn' )  and category=0 and left(name,3)!='sp_' and left(name,3)!='fn_'  )
                    group by  id
                    having count(1) =1
                    )_a
                    )

                    declare @max int
                    select @max=max(rownumber)
                    from #er

                    declare @rowNo int
                    declare @asbegin int
                    set @rowNo=1
                    while @rowNo<=@max
                    begin
                    select @s=text from #er where rownumber=@rowNo

                    set @s=replace(@s,'create','alter')
                    SELECT  @asbegin  =  PATINDEX ('%[^A-Z,0-9]AS[^A-Z,0-9]%', @s)   
                    
                    SELECT  @s  =  SUBSTRING(@s,  1,  @asbegin  -  1)+  '  WITH  ENCRYPTION  AS ' +  SUBSTRING  (@s,  @asbegin+3,  LEN(@s)) 
                    print @s
                    exec( @s)
                    set @rowNo=@rowNo+1
                    end

                    drop table #er 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值