怎样对SQL Server 2005存储过程解密

http://tech.ddvip.com   2008年05月09日    社区交流

内容摘要:要查密文必须使用DAC(专用管理员连接)连接到数据库后,在系统表sys.sysobjvalues查询,该表的列imageval存储了相应的密文。

  FOR SELECT real_decrypt from #output

  ORDER BY ident

  FOR READ ONLY

  --获取文本

  SELECT @LFCR = 2

  SELECT @LineId = 1

  OPEN ms_crs_syscom

  FETCH NEXT FROM ms_crs_syscom into @SyscomText

  WHILE @@fetch_status >= 0

  BEGIN

  SELECT @BasePos = 1

  SELECT @CurrentPos = 1

  SELECT @TextLength = LEN(@SyscomText)

  WHILE @CurrentPos != 0

  BEGIN

  --通过回车查找行的结束

  SELECT @CurrentPos = CHARINDEX(char(13)+char(10), @SyscomText,

  @BasePos)

  --如果找到回车

  IF @CurrentPos != 0

  BEGIN

  --如果@Lines的长度的新值比设置的大就插入@Lines目前的内容并继续

  While (isnull(LEN(@Line),0) + @BlankSpaceAdded +

  @CurrentPos-@BasePos + @LFCR) > @DefinedLength

  BEGIN

  SELECT @AddOnLen = @DefinedLength-(isnull(LEN(@Line),0) +

  @BlankSpaceAdded)

  INSERT #CommentText VALUES

  ( @LineId,

  isnull(@Line, N'') + isnull(SUBSTRING(@SyscomText,

  @BasePos, @AddOnLen), N''))

  SELECT @Line = NULL, @LineId = @LineId + 1,

  @BasePos = @BasePos + @AddOnLen, @BlankSpaceAdded = 0

  END

  SELECT @Line = isnull(@Line, N'') +

  isnull(SUBSTRING(@SyscomText, @BasePos, @CurrentPos-@BasePos + @LFCR), N'')

  SELECT @BasePos = @CurrentPos+2

  INSERT #CommentText VALUES( @LineId, @Line )

  SELECT @LineId = @LineId + 1

来源:微软BI开拓者    作者:拓狼    责编:豆豆技术应用

正在加载评论...