Не е ясно каква е вашата цел:опитвате ли се да защитите интелектуалната собственост; предотвратяване на потребителите да виждат чувствителна информация в изходния код (напр. пароли); попречи на потребителите да ПРОМЕНЯТ самите процедури или нещо друго? Вашите потребители вътрешни потребители във вашата компания ли са или са външни клиенти? Те ли хостват базата данни и приложението или вие?
За защита на интелектуалната собственост:
- Накарайте вашите потребители (клиенти?) да подпишат NDA или договор, който определя вашите правила и условия и включва санкции за разкриване на вашата интелектуална собственост
- Преместете поверителната информация в услуга, която хоствате и излагате като уеб услуга
За да попречите на потребителите да виждат изходния код:
- СЪЗДАВАНЕ НА ПРОЦЕДУРА С ШИФРОВАНЕ - това само не позволява на „нормалните“ потребители да видят кода, няма да спре определен потребител с разрешения на sysadmin
- Напишете CLR процедура в .NET вместо да използвате TSQL
- Преместете поверителната информация в компилирано клиентско приложение
- Преместете поверителната информация в услуга, която хоствате и излагате като уеб услуга
За да попречите на потребителите да ПРОМЕНЯТ процедурите:
- Не им давайте необходимите разрешения
В крайна сметка решителен потребител с права на sysadmin винаги ще извършва обратно инженерство, отстраняване на грешки, декомпилиране или по друг начин ще разкрие логиката във вашия код. Така че трябва да сте много наясно какво точно се опитвате да предотвратите, какво е потенциалното въздействие върху вас или вашата компания и колко време и пари сте готови да инвестирате в предотвратяването му.