Nie jest jasne, jaki jest Twój cel:czy próbujesz chronić własność intelektualną; uniemożliwić użytkownikom zobaczenie poufnych informacji w kodzie źródłowym (np. haseł); uniemożliwić użytkownikom zmianę samych procedur lub coś innego? Czy Twoi użytkownicy są użytkownikami wewnętrznymi w Twojej firmie, czy są to klienci zewnętrzni? Czy hostują bazę danych i aplikację, czy ty?
Aby chronić własność intelektualną:
- Niech Twoi użytkownicy (klienci?) podpiszą umowę NDA lub umowę, która określa Twoje warunki i obejmuje kary za ujawnienie Twojej własności intelektualnej
- Przenieś poufne informacje do usługi, którą hostujesz i udostępniasz jako usługę internetową
Aby uniemożliwić użytkownikom oglądanie kodu źródłowego:
- UTWÓRZ PROCEDURĘ ZA POMOCĄ SZYFROWANIA – zapobiega to tylko wyświetlaniu kodu „normalnym” użytkownikom, nie zatrzyma określonego użytkownika z uprawnieniami administratora
- Napisz procedurę CLR w .NET zamiast używać TSQL
- Przenieś poufne informacje do skompilowanej aplikacji klienckiej
- Przenieś poufne informacje do usługi, którą hostujesz i udostępniasz jako usługę internetową
Aby uniemożliwić użytkownikom zmienianie procedur:
- Nie dawaj im niezbędnych uprawnień
W końcu zdeterminowany użytkownik z uprawnieniami administratora zawsze będzie dokonywał inżynierii wstecznej, debugowania, dekompilacji lub w inny sposób odkryje logikę w twoim kodzie. Musisz więc dokładnie określić, czemu chcesz zapobiec, jaki potencjalny wpływ ma na Ciebie lub Twoją firmę oraz ile czasu i pieniędzy chcesz zainwestować, aby temu zapobiec.