sql >> Base de Datos >  >> RDS >> Sqlserver

proteger el procedimiento almacenado denegando la definición de vista

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.