Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

protéger la procédure stockée en refusant la définition de la vue

Votre objectif n'est pas clair :essayez-vous de protéger la propriété intellectuelle ? empêcher les utilisateurs de voir des informations sensibles dans le code source (par exemple, les mots de passe) ; empêcher les utilisateurs de MODIFIER les procédures eux-mêmes, ou autre chose ? Vos utilisateurs sont-ils des utilisateurs internes à votre propre entreprise ou sont-ils des clients externes ? Hébergent-ils la base de données et l'application ou vous ?

Pour protéger la propriété intellectuelle :

  • Demandez à vos utilisateurs (clients ?) de signer un accord de non-divulgation ou un contrat spécifiant vos conditions générales et prévoyant des sanctions en cas de divulgation de votre propriété intellectuelle
  • Déplacez les informations sensibles vers un service que vous hébergez et exposez en tant que service Web

Pour empêcher les utilisateurs de voir le code source :

  • CRÉER UNE PROCÉDURE AVEC LE CHIFFREMENT - cela empêche uniquement les utilisateurs "normaux" de voir le code, cela n'arrêtera pas un utilisateur déterminé avec des autorisations d'administrateur système
  • Écrire une procédure CLR dans .NET au lieu d'utiliser TSQL
  • Déplacer les informations sensibles dans une application cliente compilée
  • Déplacez les informations sensibles vers un service que vous hébergez et exposez en tant que service Web

Pour empêcher les utilisateurs de MODIFIER les procédures :

  • Ne leur donnez pas les autorisations nécessaires

En fin de compte, un utilisateur déterminé avec des autorisations d'administrateur système effectuera toujours une rétro-ingénierie, un débogage, une décompilation ou une autre découverte de la logique de votre code. Vous devez donc être très clair sur exactement ce que vous essayez d'empêcher, quel est l'impact potentiel sur vous ou votre entreprise, et combien de temps et d'argent vous êtes prêt à investir pour l'empêcher.