No está claro cuál es su objetivo:¿está tratando de proteger la propiedad intelectual; evitar que los usuarios vean información confidencial en el código fuente (por ejemplo, contraseñas); ¿Evitar que los usuarios alteren los procedimientos ellos mismos, o algo más? ¿Tus usuarios son usuarios internos de tu propia empresa o son clientes externos? ¿Alojan ellos la base de datos y la aplicación o tú?
Para proteger la propiedad intelectual:
- Haga que sus usuarios (¿clientes?) firmen un NDA o contrato que especifique sus términos y condiciones e incluya sanciones por divulgar su propiedad intelectual
- Transfiera la información confidencial a un servicio que usted aloje y exponga como un servicio web
Para evitar que los usuarios vean el código fuente:
- CREAR PROCEDIMIENTO CON CIFRADO:esto solo evita que los usuarios "normales" vean el código, no detendrá a un usuario determinado con permisos de administrador del sistema
- Escriba un procedimiento CLR en .NET en lugar de usar TSQL
- Transfiera la información confidencial a una aplicación de cliente compilada
- Transfiera la información confidencial a un servicio que usted aloje y exponga como un servicio web
Para evitar que los usuarios ALTEREN los procedimientos:
- No les des los permisos necesarios
Al final, un usuario determinado con permisos de administrador de sistemas siempre realizará ingeniería inversa, depurará, descompilará o descubrirá la lógica de su código. Por lo tanto, debe tener muy claro exactamente lo que está tratando de prevenir, cuál es el impacto potencial para usted o su empresa, y cuánto tiempo y dinero está dispuesto a invertir para prevenirlo.