sql >> Database teknologi >  >> RDS >> Sqlserver

Beskyt lagret procedure ved at afvise visningsdefinition

Det er ikke klart, hvad dit mål er:forsøger du at beskytte intellektuel ejendom; forhindre brugere i at se følsomme oplysninger i kildekoden (f.eks. adgangskoder); forhindre brugere i selv at ÆNDRE procedurerne eller noget andet? Er dine brugere interne brugere i din egen virksomhed eller er de eksterne kunder? Er de vært for databasen og applikationen, eller gør du det?

For at beskytte intellektuel ejendom:

  • Få dine brugere (kunder?) til at underskrive en NDA eller en kontrakt, der specificerer dine vilkår og betingelser og inkluderer sanktioner for afsløring af din intellektuelle ejendom
  • Flyt de følsomme oplysninger til en tjeneste, som du hoster og eksponerer som en webtjeneste

For at forhindre brugere i at se kildekoden:

  • OPRET PROCEDURE MED KRYPTERING - dette forhindrer kun 'normale' brugere i at se koden, det vil ikke stoppe en bestemt bruger med sysadmin-tilladelser
  • Skriv en CLR-procedure i .NET i stedet for at bruge TSQL
  • Flyt de følsomme oplysninger til et kompileret klientprogram
  • Flyt de følsomme oplysninger til en tjeneste, som du hoster og eksponerer som en webtjeneste

For at forhindre brugere i at ÆNDRE procedurerne:

  • Giv dem ikke de nødvendige tilladelser

I sidste ende vil en bestemt bruger med sysadmin-tilladelser altid reverse-engineere, debugge, dekompilere eller på anden måde afdække logikken i din kode. Så du skal være meget klar over, præcis hvad du forsøger at forhindre, hvad den potentielle indvirkning er på dig eller din virksomhed, og hvor meget tid og penge du er villig til at investere i at forhindre det.




  1. Har du brug for hjælp til fletsætningen

  2. Opdatering af 4 millioner poster i SQL-server ved hjælp af liste over post-id'er som input

  3. Lagret procedure og tilladelser - er EXECUTE nok?

  4. Hvordan kontrollerer man, om strengværdien i én kolonne er delvist indeholdt i strengværdien af ​​en anden kolonne ved hjælp af SQL?