L'utilisation de SQL Shield est immédiate après son installation. SQL Shield ne modifie pas les procédures existantes, il ne change rien de ce qui est déjà en place. Lorsqu'il est activé, il ne modifie que les procédures nouvellement créées. Cela ne se produit que si vous spécifiez explicitement la nouvelle méthode. Ainsi, les deux systèmes peuvent coexister sans interférer l'un avec l'autre. Pour spécifier clairement le nouveau système, vous devez insérer le commentaire /*sqlshield*/ dans la clause WITH ENCRYPTION. Ce commentaire prend en compte les casses.

Exemple:

CREATE PROCEDURE MyTest 
WITH /*sqlshield*/ ENCRYPTION
AS
SELECT 2+2

SQL Shield ne fournit pas le système de décryptage de procédures cryptées avec le serveur SQL ou par SQL Shield.

Après installation de SQL Shield, vous pouvez choisir le sytème de cryptage que vous désirez, l'original ou SQL Shield. Vous pouvez activer et désactiver SQL Shield grâce à deux procédures externes. SQL Shield démarre en même temps que le serveur SQL. Pendant l'installation, une procédure se met en place appellée sqlshield_startup dans la base de données master. Si vous voulez la désactiver, insérez la commande "exec sqlshield_on" à cet endroit. Pour décharger SQL Shield à tout moment, utilisez "exec sqlshield_off". Après cela, tous les nouveaux objets créés seront cryptés par le serveur SQL original. Le serveur SQL cache les objets décryptés. C'est la raison pour laqelles même les objets cryptés sont en règle générale disponibles (vous pouvez les executer) après avoir arrêté SQL Shield. Mais les objets qui n'ont pas été commencés ne sont pas disponibles. Si vous redémarrez le serveur SQL et ne démarrez pas SQL Shield, tous les objets ne seront pas disponibles. Cependant, SQL Shield n'empêche pas totalement toutes les procédures d'être décryptées, mais SQL Shield rend ceci impossible pour tous les décrypteurs actuellement existants.

A cause de limites internes inhérentes au serveur 7.0 MS SQL, les procédures et les vues cryptées avec le cryptage SQL Shield ne sont plus de 4000 caractères. Les procédures plus longues sont cryptées avec le cryptage originel de SQL. La version pour MS SQL 2000 n'a pas de limites.

Voyez comment les procédures du serveur SQL peuvent être facilement décryptées. Crééz une simple procédure cryptée stockée.

Trouvez ici le programme de décryptage sur internet.

Commencez ici, choisissez la procédure nouvellement créée et cliquer sur sauvegarder

Ouvrez le fichier texte créé avec Notepad. Vous y êtes. Toutes vos procédures cryptées peuvent être révélées en quelques clicks !

Voyons à présent comment SQL Shield résoud ce problème.

Démarrez SQL Shield, s'il n'était pas encore activé:

Crééz la nouvelle procédure stockée et insérez le commentaire "magic" /*sqlshield*/:

Exécutez-le et observez qu'il fonctionne toujours sans problème.

Exécutez le décrypteur et essayez de l'appliquer à notre procédure.

Cliquez sur sauvegarder et voyez le résultat:

Oups. Notre procédure est maintenant protégée.

Voulez-vous voir ce qui arriverait sans SQL Shield? Désactivez le démarrage automatique de SQL Shield dans la procédure master.sqshield_startup et redémarrez le serveur SQL. Exécutez sqshield_test à nouveau. Le message d'erreur suivant apparaît.

Quand vous démarrez SQL Shield, il redevient exécutable.