Oharra
Baimena behar duzu orria atzitzeko. Direktorioetan saioa has dezakezu edo haiek alda ditzakezu.
Baimena behar duzu orria atzitzeko. Direktorioak alda ditzakezu.
Applies to:SQL Server
A menudo, los desarrolladores de software preguntan cómo distribuir su aplicación de datos SQL Server a los clientes, a la vez que impiden que los clientes analicen y deconstruan su aplicación. El principio clave aquí es que proteger su propiedad intelectual es un problema legal y la protección se basa en el contrato de licencia. Cuando se instala SQL Server en un equipo que otros administran, pierde inherentemente algunos aspectos del control.
Naturaleza del problema
El propietario o administrador de un equipo siempre puede acceder a la instancia de SQL Server instalada en ese equipo. Si implementa la aplicación en el equipo de un cliente, ya que son administradores, pueden conectarse al SQL Server como miembros del rol de servidor fijo sysadmin. Esto incluye la capacidad de conceder permisos, administrar copias de seguridad (incluida la restauración de copias de seguridad en otros equipos), descifrar y mover archivos de datos, etc. Para obtener más información, vea Conectarse a SQL Server Cuando los Administradores del Sistema están Bloqueados.
Los procedimientos almacenados y los datos se pueden cifrar, pero la estructura de datos no se puede ocultar, y los usuarios que pueden adjuntar un depurador al proceso de servidor pueden recuperar procedimientos descifrados y datos de la memoria en tiempo de ejecución.
Si los clientes no son administradores en los equipos, pueden impedir el acceso de los clientes. Puede usar Transparent Data Encryption para cifrar los archivos de datos, puede cifrar las copias de seguridad y auditar las acciones de todos los usuarios. Pero los administradores de SQL Server, y los administradores del equipo de SQL Server, pueden revertir estas acciones.
Solución
Hay varias maneras de configurar el acceso a los datos del cliente sin instalar SQL Server en el equipo del cliente. Lo más sencillo probablemente es usar Azure SQL Database para que los clientes no sean administradores, quizás en combinación con Always Encrypted. Para obtener más información sobre cómo empezar con SQL Database, consulte ¿Qué es Azure SQL Database?.
También puede hospedar un servidor SQL en su propia red y permitir que los clientes accedan a los datos a través de su red, ya sea directamente o a través de una aplicación web.