Het is niet duidelijk wat uw doel is:probeert u intellectueel eigendom te beschermen; voorkomen dat gebruikers gevoelige informatie in de broncode zien (bijv. wachtwoorden); voorkomen dat gebruikers de procedures zelf wijzigen, of iets anders? Zijn uw gebruikers interne gebruikers in uw eigen bedrijf of zijn het externe klanten? Hosten zij de database en de applicatie of jij?
Om intellectueel eigendom te beschermen:
- Laat uw gebruikers (klanten?) een NDA of contract ondertekenen waarin uw algemene voorwaarden worden gespecificeerd en waarin sancties zijn opgenomen voor het openbaar maken van uw intellectuele eigendom
- Verplaats de gevoelige informatie naar een service die u host en publiceer deze als een webservice
Om te voorkomen dat gebruikers de broncode zien:
- CREER PROCEDURE MET ENCRYPTIE - dit voorkomt alleen dat 'normale' gebruikers de code zien, het zal een vastberaden gebruiker met sysadmin-rechten niet stoppen
- Schrijf een CLR-procedure in .NET in plaats van TSQL te gebruiken
- Verplaats de gevoelige informatie naar een gecompileerde clienttoepassing
- Verplaats de gevoelige informatie naar een service die u host en publiceer deze als een webservice
Om te voorkomen dat gebruikers de procedures WIJZIGEN:
- Geef ze niet de benodigde rechten
Uiteindelijk zal een vastberaden gebruiker met sysadmin-machtigingen altijd de logica in uw code reverse-engineeren, debuggen, decompileren of anderszins ontdekken. U moet dus heel duidelijk zijn over wat u precies probeert te voorkomen, wat de mogelijke impact op u of uw bedrijf is en hoeveel tijd en geld u bereid bent te investeren in het voorkomen ervan.