Dopo l' installazione dello Scudo SQL, potete cominciare a usarlo immediatamente. Lo Scudo SQL non ha effetto sulle procedure esistenti, esso non cambia nessuno degli oggetti che gi esistono. Una volta attivato, esso ha effetto solo sulle vostre nuove procedure. Cio' accade soltanto quando voi esplicitamente specificate il nuovo metodo. In questa maniera entrambe i metodi possono coesistere senza interferire. Per specificare esplicitamente il nuovo metodo inserite il commento /*sqlshield*/ WITH nella clausola di WITH ENCRYPTION. Questo commento e' "case-sensitive", ovvero sensibile all'uso di maiuscole e le minuscole.
Esempio:
CREATE PROCEDURE MyTest WITH /*sqlshield*/ ENCRYPTION AS SELECT 2+2 |
Lo Scudo SQL non fornisce metodo di decifrazione delle procedure cifrate con SQL Server o con lo Scudo SQL. Dopo l'installazione dello Scudo SQL potete scegliere quale metodo di crittografia usare: nativo o Scudo SQL.
Potete abilitare o inabilitare lo Scudo SQL lanciando due procedure esterne. Scudo SQL parte assieme a SQL Server. Durante l'installazione dispone una procedura speciale, denominata sqlshield_startup, nella database principale. Se desiderate disabilitarla, basta inserire li' il commento: "exec sqlshield_on". Per scaricare lo Scudo SQL in qualsiasi momento, usate "exec sqlshield_off". Dopo di che tutti I nuovi oggetti generati useranno la crittografia nativa di SQL Server. SQL Server immagazzina gli oggetti decifrati in "Cache". Per questa ragione persino gli oggetti cifrati sono solitamente disponibili (potete eseguirli) dopo che arrestiate o scarichiate lo Scudo SQL. Ma gli oggetti che non sono stati caricati non sono disponibili. Se riavviate SQL Servere e non avviate lo schermo di SQL nessuno degli oggetti e' disponibile.
Lo Scudo SQL pero' non impedisce completamente la decifrazione delle procedure, ma rende impossibile il funzionamento dei decifratori correntmente in esistenza. Le procedure e le viste immagazzinate cifrate con lo Scudo SQL non possono essere più lunghe di 4000 caratteri, cio' e' dovuto alle limitazioni interne di MSSQL Server 7.0. Le procedure più lunghe sono cifrate con la crittografia nativa di SQL. La versione MSSQL 2000 non presenta limitazioni.
Date uno sguardo a quanto le procedure dell'assistente di SQL possono essere facilmente decifrate. Genera una semplice procedura cifrata immagazzinata:
Individuate il programma di decifrazione con la ricerca in rete.
Avviatelo, scegliete la nuova procedura creata e seleziona "salva il file".
Apri il file creato con Notepad. Tutte le tue procedure cifrate sono rivelate con pochi scatti del mouse.
Ora vediamo come lo Scudo SQL risolve questo problema
Avvia lo Scudo SQL se non gia' avviato:
Crea la nuova procedura immagazzinata ed inserisci /*sqlshield*/ comment:
Avvialo e controlla che possa essere eseguito senza problemi.
Lancia il decifratore e prova ad applicarlo alla nostra procedura:
Premi il tasto per immagazzinare I file e da' un'occhiata al File prodotto:
Ooops! La nostra procedura ora è protetta.
Desiderate vedere che cosa accadrebbe senza lo Sudo SQL? Inabilita l' auto-avviamento dello Scudo SQL in SQL Server nella procedura master.sqlshield_startup. Ora lancia "sqlshield_test" di nuovo. Vedrai il seguente errore:
Quando avviate lo Scudo SQL diventa di nuovo eseguibile.