存储过程的文本文件放在SYSCOMMMENT的系统表中!加密的是看不到的:(

解决方案 »

  1.   

    正常途径是解决不了的
    想一想别的办法吧
    如解密
    解SQL SERVER 的加密过程就是你一开始安装时所选的加密方式所用到的
      

  2.   

    试试下面的,从别处拿过来的Here is the code for SQL 6.5/************************************************/
    /* REVISED REC'D 5/21/98 */
    /* sp_decrypt_object Tom Sager 01/26/98 */
    /* */
    /* Decrypts objects (views, procedures & trigs) */
    /* created with the WITH ENCRYPTION option. */
    /* */
    /* Uses the encrypt() built-in function to find */
    /* a plaintext string that encrypts to the same */
    /* value as stored in the text column of the */
    /* syscomments table. */
    /* */
    /************************************************/
    create proc sp_decrypt_object
    (@objname varchar(30))
    WITH ENCRYPTION
    asSET NOCOUNT ONdeclare @errmsg varchar(80)
    declare @encrtext varchar(255)
    declare @decrtext varchar(255)
    declare @testtext varchar(255)
    declare @printline varchar(255)
    declare @textlen int
    declare @lup int
    declare @match char(1)
    declare @testchar smallint
    declare @begblk smallint
    declare @endblk smallintif (select count(*)
    from sysobjects
    where name = @objname) = 0
    begin
    select @errmsg = 'Object '
    +@objname
    +' not found in database '
    +DB_NAME()
    print @errmsg
    return 1
    endif (select count(*) from sysobjects t1,
    syscomments t2
    where t1.name = @objname
    and t1.id = t2.id
    and t2.texttype & 4 != 0) = 0
    begin
    select @errmsg = 'Object '
    +@objname
    +' is not encrypted in database '
    +DB_NAME()
    print @errmsg
    return 1
    endDECLARE comments_cursor CURSOR for
    select t1.text
    from syscomments t1,
    sysobjects t2
    where t1.id = t2.id
    and t2.name = @objname
    order by t1.colidOPEN comments_cursorFETCH NEXT FROM comments_cursor
    INTO @encrtextWHILE (@@fetch_status <> -1)
    BEGIN
    IF (@@fetch_status <> -2)
    BEGIN
    select @decrtext = REPLICATE(' ', 255)
    select @textlen = DATALENGTH(@encrtext)
    select @lup = 1
    select @match = 'n'
    while (@lup <= @textlen)
    begin
    select @testchar = 0
    select @match = 'n'
    while (@match = 'n')
    begin
    select @decrtext =
    STUFF(@decrtext,@lup,1,CHAR(@testchar))
    select @testtext = encrypt(@decrtext)
    if ASCII(SUBSTRING(@testtext,@lup,1)) =
    ASCII(SUBSTRING(@encrtext,@lup,1))
    begin
    select @match = 'y'
    end
    select @testchar = @testchar + 1
    if (@testchar > 255)
    begin
    print 'Error...no match found'
    return 1
    end
    end
    select @lup = @lup + 1
    end
    select @begblk = 1
    select @endblk = 1
    while (@endblk <= @textlen)
    begin
    if (substring(@decrtext,@endblk,1) = 0x0a)
    begin
    select @printline = @printline +
    SUBSTRING(@decrtext
    ,@begblk
    ,@endblk-@begblk+1)
    print @printline
    select @begblk = @endblk + 1
    select @endblk = @begblk
    select @printline = NULL
    end
    select @endblk = @endblk + 1
    end
    select @printline = @printline +
    SUBSTRING(@decrtext
    ,@begblk
    ,@endblk-@begblk+1)
    END
    FETCH NEXT FROM comments_cursor INTO @encrtext
    END
    print @printline
    CLOSE comments_cursorDEALLOCATE comments_cursor
    GO