none
Evitar el insert en una Tabla de la Base de datos RRS feed

  • Pregunta

  • Hola,

    Quiero saber si es posible denegar el insert a una base datos datos, utilizando C#.

    Explico la situación: tengo un software que valida el tema contable de una empresa, de momento el software se vende con su respectiva licencia, pero al darme cuenta que mi sistema puede registrar infinidad de empresas, pues el negocio ya no es tan rentable. Así que quiero que por cada empresa que se registre, en el sistema, se solicite una licencia y quede registrado en la base de datos, y si quiere registrar otra empresa, de nuevo que solicite la licencia.

    El software tiene la capacidad de crear la base de datos de la empresa en el servidor, también de la empresa. Por lo tanto, ellos también podrían crear más empresas ingresando en su base de datos. Entonces quiero evitar ese "insert" manual que haría el administrador de la base de datos.

    miércoles, 8 de febrero de 2017 18:36

Respuestas

  • Saludos

    Todo lo que puedas crear al ser ellos también un sysadmin lo pueden deshacer, aun cifrar tus procedimiento almacenados para que ellos desconocen que mandas puede ser conocido por ingeniería inversa sin mucha dificultad.

    Haz un buen producto, usa stores, cifrados, si vas a meter ese tipo de lógica te recomiendo que lo hagas en la capa del programa y no en la capa de la base de datos, en todo caso lo que a ti te ampara es la ley de derechos de autor, tus licencias y los contratos de soporte (esto es muy importante para la empresa y para ti) pon bien tus lineamientos y esto te asegurará que mientras ellos cumplan tienen soporte.

    Lo que intentas hacer es bueno pero hasta cierto punto no funcional, si quieres puedes usar algún tipo de chequeo con un header contra algún codigo hash generado o con un trigger pero la verdad no creo que sea el mejor método de hacer esto.


    miércoles, 8 de febrero de 2017 18:47

Todas las respuestas

  • Saludos

    Todo lo que puedas crear al ser ellos también un sysadmin lo pueden deshacer, aun cifrar tus procedimiento almacenados para que ellos desconocen que mandas puede ser conocido por ingeniería inversa sin mucha dificultad.

    Haz un buen producto, usa stores, cifrados, si vas a meter ese tipo de lógica te recomiendo que lo hagas en la capa del programa y no en la capa de la base de datos, en todo caso lo que a ti te ampara es la ley de derechos de autor, tus licencias y los contratos de soporte (esto es muy importante para la empresa y para ti) pon bien tus lineamientos y esto te asegurará que mientras ellos cumplan tienen soporte.

    Lo que intentas hacer es bueno pero hasta cierto punto no funcional, si quieres puedes usar algún tipo de chequeo con un header contra algún codigo hash generado o con un trigger pero la verdad no creo que sea el mejor método de hacer esto.


    miércoles, 8 de febrero de 2017 18:47
  • Cristhian0992,

    {?}- es posible denegar el insert a una base datos datos 

    ¿Desde la aplicación? sí se puede pero no sirve de mucho como bien lo has advertido. ¿Desde la base de datos? también se puede (podrías escribir un trigger instead of) pero alguien con un mínimo de conocimientos en base de datos podría inhabilitarlo, entonces, ¿qué hacer?. Opino lo mismo que Enrique, define claramente las reglas del juego mediante un contrato donde se defina claramente el uso de las licencias, de hecho podrías colocar un seguro a la puerta pero si alguien quiere entrar a casa lo hará por las buenas o por las malas.


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    miércoles, 8 de febrero de 2017 20:17
  • Hola, es cierto lo que dices, es una buena idea pero no es funcional. Le presente mi propuesta a la gerencia y dicen que ya tienen una experiencia negativa con respecto a este asunto, en estos momentos están deliberando su siguiente acción. De todos modos gracias por el aporte.
    jueves, 16 de febrero de 2017 15:54