Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Kako automatski dodati WITH ENCRYPTION klauzulu?

[es] :: MS SQL :: Kako automatski dodati WITH ENCRYPTION klauzulu?

[ Pregleda: 786 | Odgovora: 4 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

flighter_022
Nigerija

Član broj: 18499
Poruke: 199
*.directonpc.net.

ICQ: 23089150
Sajt: www.sirmium.net


Profil

icon Kako automatski dodati WITH ENCRYPTION klauzulu?31.10.2007. u 17:25
Postoji li nacin da se u SQL Serveru 2005, automatski ubaci WITH ENCRYPTION klauzula u stored procedures? Znaci, imam na primer 200 procedura, i hocu da odjednom u sve ubacim tu klauzulu?

31.10.2007. u 17:25 

DarkMan
Darko Matesic

Član broj: 20445
Poruke: 495
*.ptt.yu.



Profil

icon Re: Kako automatski dodati WITH ENCRYPTION klauzulu?01.11.2007. u 13:09
Posto vidim da ti niko ne odgovara ja ti mogu predloziti resenje koje najverovatnije ne bi bilo moguce izvesti cisto uz pomoc SQL servera.

Mozes da odradis ekstrakciju/skriptovanje svih stored procedura na sledeci nacin:
Code:

declare @text varchar(8000)
select @text = ctext from dbo.syscomments where id=object_id(N'[dbo].[<naziv stored procedure>]')
print @text

Pa zatim napisati kod koji ce promeniti sve CREATE u ALTER i dodati WITH ENCRYPTION na pravo mesto.
I na kraju pokrenuti sve te skripte.
Naravno proceduru probati prvo na kopiji baze, pa ako sve prodje kako treba odradis na konkretnoj bazi.
01.11.2007. u 13:09 

flighter_022
Nigerija

Član broj: 18499
Poruke: 199
*.directonpc.net.

ICQ: 23089150
Sajt: www.sirmium.net


Profil

icon Re: Kako automatski dodati WITH ENCRYPTION klauzulu?01.11.2007. u 13:33
Hmmm, to sam i mislio, na neki nacin izvuci listu procedura i onda uraditi program koji ce da protrci kroz njih i ubaci sta mi treba.
01.11.2007. u 13:33 

vujkev
Darko Vujičić
Telekom Srbija AD
Beograd

Član broj: 8072
Poruke: 814
212.200.243.*



Profil

icon Re: Kako automatski dodati WITH ENCRYPTION klauzulu?08.11.2007. u 00:24
Pošto i sam imam nekoliko procedura koje ću kasnije zaštititi morao sam da napravim isto to što tebi treba. Evo čistog T-SQL koda koji, koliko sam mogao da proverim, radi. Nadam se da nije kasno

Code:


declare @text nvarchar(max)
declare @ObjectIDOld int
declare @ObjectID int
declare @ProcedureStart int
declare @SPText nvarchar(max)
 
    declare c cursor 
        for
            select ID, [ctext] from dbo.syscomments order by id, colid 
    
    open c
    fetch next from c
        into @ObjectID, @text

    select @ObjectIDOld = @ObjectID
    while (@@fetch_status = 0)
    begin
        select @SPText=''
        while (@ObjectIDOld = @ObjectID and @@fetch_status = 0)
        begin
            select @SPText = @SPText +  @text
            print str(len(@sptext))
            fetch next from c
                into @ObjectID, @text
        end

        select @ProcedureStart = Patindex('create PROCEDURE', @SPText)

        if @ProcedureStart >= 0 
        begin
            declare @AsStart int

            select @AsStart = Patindex(N'%[^0-9A-Z]as[^0-9A-Z]%', @SPText)

            if @AsStart > 0 
            begin 
                select @SPText = replace(@SPText, 'create PROCEDURE', 'Alter procedure')

                select @SPText = left(@SPText, @AsStart - 1) 
                        + ' With encryption as ' 
                        + right(@spText, len(@SPText) - @AsStart - 1)

                exec (@SPText)
            end
        end    
        select @ObjectIDOld = @ObjectID
    end
    close c
    deallocate c

Naučio sam...
Da je važnije biti ljubazan nego biti u pravu
08.11.2007. u 00:24 

flighter_022
Nigerija

Član broj: 18499
Poruke: 199
*.directonpc.net.

ICQ: 23089150
Sajt: www.sirmium.net


Profil

icon Re: Kako automatski dodati WITH ENCRYPTION klauzulu?18.11.2007. u 23:40
Ma nije kasno... naravno :)
Hvala!
18.11.2007. u 23:40 

[es] :: MS SQL :: Kako automatski dodati WITH ENCRYPTION klauzulu?

[ Pregleda: 786 | Odgovora: 4 ]

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.