Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Gespeicherte Prozedur durch Deny-View-Definition schützen

Es ist nicht klar, was Ihr Ziel ist:Versuchen Sie, geistiges Eigentum zu schützen; verhindern, dass Benutzer vertrauliche Informationen im Quellcode sehen (z. B. Passwörter); Benutzer daran hindern, die Verfahren selbst zu ÄNDERN, oder etwas anderes? Sind Ihre Benutzer interne Benutzer in Ihrem eigenen Unternehmen oder externe Kunden? Hosten sie die Datenbank und die Anwendung oder Sie?

Zum Schutz des geistigen Eigentums:

  • Lassen Sie Ihre Benutzer (Kunden?) eine Geheimhaltungsvereinbarung oder einen Vertrag unterzeichnen, der Ihre Geschäftsbedingungen festlegt und Strafen für die Offenlegung Ihres geistigen Eigentums enthält
  • Verschieben Sie die vertraulichen Informationen in einen Dienst, den Sie hosten, und stellen Sie ihn als Webdienst bereit

So verhindern Sie, dass Benutzer den Quellcode sehen:

  • VERFAHREN MIT VERSCHLÜSSELUNG ERSTELLEN - dies hindert nur "normale" Benutzer daran, den Code zu sehen, es wird einen bestimmten Benutzer mit Sysadmin-Berechtigungen nicht stoppen
  • Schreiben Sie eine CLR-Prozedur in .NET, anstatt TSQL zu verwenden
  • Verschieben Sie die vertraulichen Informationen in eine kompilierte Client-Anwendung
  • Verschieben Sie die vertraulichen Informationen in einen Dienst, den Sie hosten, und stellen Sie ihn als Webdienst bereit

So verhindern Sie, dass Benutzer die Verfahren ÄNDERN:

  • Geben Sie ihnen nicht die erforderlichen Berechtigungen

Am Ende wird immer ein entschlossener Benutzer mit Sysadmin-Berechtigungen die Logik in Ihrem Code zurückentwickeln, debuggen, dekompilieren oder auf andere Weise aufdecken. Sie müssen sich also genau darüber im Klaren sein, was Sie zu verhindern versuchen, was die potenziellen Auswirkungen auf Sie oder Ihr Unternehmen sind und wie viel Zeit und Geld Sie bereit sind, in die Vorbeugung zu investieren.