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