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

Autenticación de SQL Server frente a autenticación de Windows:cuál usar y cuándo

La autenticación es un componente crítico de cualquier estrategia de seguridad. Hoy, vamos a discutir la autenticación de SQL Server y cómo es esencial para proteger su entorno de SQL Server, y el papel que juega la autenticación de Windows.

Estableciendo una conexión

Todo comienza con una conexión. Para establecer una conexión de base de datos exitosa, el cliente o la aplicación requiere la siguiente información:

  • Nombre de dominio completo de SQL Server
  • Nombre de instancia
  • Número de puerto
  • Credenciales (nombre de usuario y contraseña) para autenticación

Por ejemplo, suponga que utiliza la banca en línea. Para acceder a su cuenta, debe ingresar las credenciales con fines de autenticación. El banco lo identifica cuando proporciona credenciales válidas y permite el acceso a sus servicios luego de la verificación.

De manera similar, al iniciar sesión en SQL Server, los usuarios deben especificar credenciales válidas para que SQL Server pueda autenticar su identidad y otorgar el acceso adecuado.

SQL Server proporciona dos modos de autenticación del servidor:

  • Autenticación de Windows
  • Modo de autenticación de SQL Server y Windows (modo mixto)

Puede definir estos métodos de autenticación durante la instalación de SQL Server o cambiarlos más tarde mediante un reinicio. Es fundamental que los administradores de bases de datos comprendan las diferencias entre estos métodos de autenticación y los implementen según los requisitos específicos de su organización.

Profundicemos más para comprender las ventajas y desventajas de la autenticación de SQL Server y Windows.

Una descripción general de la autenticación de SQL Server

Los administradores de la base de datos crean inicios de sesión de SQL y proporcionan los permisos adecuados para que los usuarios se autentiquen en SQL Server. Los usuarios deben especificar el nombre de usuario y la contraseña al conectarse a SQL Server como se muestra a continuación.

Las credenciales del usuario se validan a través de la información almacenada en la base de datos maestra. Puede aplicar las siguientes políticas para los inicios de sesión de SQL Server.

  • Hacer cumplir la política de contraseñas :Los administradores pueden marcar esta opción para implementar la política de contraseñas de Windows para los inicios de sesión de SQL Server. Incluye especificar la longitud y la complejidad de la contraseña.
  • Hacer cumplir la caducidad de la contraseña :Puede hacer cumplir la antigüedad máxima de una contraseña. La contraseña caducará y debe cambiarse según lo definido por los criterios de edad.
  • El usuario debe cambiar la contraseña en el próximo inicio de sesión :el administrador asigna una contraseña durante la creación del inicio de sesión de SQL. Una vez que el usuario inicia sesión con sus credenciales, debe especificar una nueva contraseña y los administradores no sabrán de esta nueva contraseña.

Nota:Todas estas configuraciones están en el nivel de inicio de sesión de SQL individual. Por lo tanto, si necesita crear múltiples inicios de sesión de SQL, debe configurar cada cuenta con la política requerida.

No podemos habilitar solo la autenticación SQL. Para habilitarlo, use la opción de autenticación mixta que incluye autenticación de Windows y SQL.

Desventajas de la autenticación de SQL Server

Hay bastantes limitaciones y desventajas de usar solo la autenticación de SQL Server.

  • Los usuarios deben recordar las credenciales de inicio de sesión de SQL y proporcionarlas en la cadena de conexión cada vez que se conectan a SQL Server. Si tiene varios servidores SQL, puede ser difícil para el usuario realizar un seguimiento de las contraseñas de cada instancia.
  • SQL Server almacena la contraseña en la base de datos maestra en formato cifrado (hash). Los piratas informáticos pueden robar la información accediendo a la base de datos. Dado que estas credenciales cifradas deben pasarse a través de la red, esto puede aumentar las posibilidades de que se roben las credenciales de los usuarios.
  • No puede implementar políticas de cuenta adicionales (personalizadas) con los inicios de sesión de autenticación de SQL Server.
  • Aumenta la tarea de administración de inicio de sesión para los administradores de bases de datos. Los administradores de bases de datos no tienen una consola de administración central para administrar los inicios de sesión en todas las instancias.

Suponga que tiene más de 500 instancias de SQL y un usuario requiere acceso a todas estas instancias. En este caso, sería una tarea tediosa para el administrador de la base de datos conectarse a cada instancia y crear inicios de sesión de usuario. De manera similar, si una persona dejó la organización, el administrador de la base de datos debe averiguar los inicios de sesión de SQL de esa persona y eliminarlos de todas estas instancias. Este puede ser un proceso que consume mucho tiempo.

  • Es posible que tenga problemas con los usuarios huérfanos al mover una base de datos a diferentes instancias, y puede ocurrir debido a una falta de coincidencia de SID en la base de datos principal y de usuario en la nueva instancia.
  • Debe administrar las políticas de seguridad para cada inicio de sesión de SQL. No puede definir una política universal para todas las cuentas de su organización. Para una base de datos grande, es una tarea ardua definir la política para cada inicio de sesión individual.

Los mejores casos de uso para la autenticación de SQL Server

  • Puede ayudar a aplicaciones antiguas y software de terceros a conectar bases de datos si no son compatibles con la autenticación de Windows (AD).
  • Es posible que requiera que los usuarios de dominios que no sean de confianza se conecten a SQL Server. En este caso, la aplicación puede especificar inicios de sesión de SQL en las cadenas de conexión y conectarse a la base de datos.
  • Para conectar instancias de SQL independientes que no forman parte de los grupos de Active Directory (AD).
  • Puede ayudar a SQL Server a admitir aplicaciones web donde los usuarios crean sus propias identidades.
  • Los administradores comparten una identificación común para conectarse a SQL Server mediante la autenticación de Active Directory en algunos casos. Esta agrupación de conexiones no es una buena práctica. En este caso, puede crear inicios de sesión separados para cada usuario y conectarse a la base de datos utilizando sus credenciales.
  • De forma predeterminada, si implementa SQL Database en la nube, es decir, Azure SQL Database o AWS RDS, se le proporcionan credenciales de inicio de sesión para la autenticación de SQL Server. Posteriormente, si es necesario, puede configurar la autenticación basada en AD.
  • Puede usarlo para conectarse desde sistemas operativos cruzados, como Linux y macOS.

Una descripción general de la autenticación de Windows

En la autenticación de Windows, el usuario primero debe autenticarse en Active Directory. SQL Server autentica a los usuarios a través del token principal de Windows en el sistema operativo. Con eso, SQL Server no solicita una contraseña para la validación de identidad. Por lo tanto, Windows confirma las identidades de los usuarios para la autenticación. SQL Server no almacena las credenciales en la autenticación de Windows. La conexión que utiliza la autenticación de Windows se denomina conexión de confianza o integrada.

Nota:la autenticación de Windows es el método de autenticación predeterminado cuando instala SQL Server.

Ventajas de la autenticación de Windows

  • La autenticación de Windows es una forma segura de conectarse a SQL Server y utiliza tokens y SPN para fines de autenticación mediante el protocolo de autenticación Kerberos. Por lo tanto, no envía contraseñas a través de la red y protege el robo de contraseñas a través de la red.
  • SQL Server no almacena las credenciales del usuario.
  • Utiliza el protocolo de seguridad Kerberos y puede implementar políticas de contraseñas, como contraseñas complejas, bloqueos de cuentas y caducidad de contraseñas. Esta política de contraseñas se puede implementar a nivel de organización en todos los servidores. Por lo tanto, puede controlar las políticas de seguridad de los usuarios a nivel de organización en lugar de a nivel de inicio de sesión individual como con la autenticación de SQL Server.
  • La autenticación de Windows permite la separación de tareas. El equipo de Active Directory (AD) administra los usuarios de AD. Considerando que, el DBA agrega usuarios de AD en las instancias de SQL y proporciona los permisos apropiados.
  • Active Directory ayuda a crear grupos de Windows. El equipo de AD puede agregar varias personas que requieran el mismo acceso en un grupo de AD. Posteriormente, puede agregar el grupo en la instancia de SQL y otorgar permisos a nivel de grupo. Por lo tanto, si se une una nueva persona, una vez que forma parte del grupo AD, el acceso a la base de datos se otorga automáticamente en todo el servidor donde existe este grupo AD. De manera similar, una vez que un usuario se muda de la organización y su ID se elimina de estos grupos de AD, ya no puede acceder a la base de datos.

Desventajas de la autenticación de Windows

  • Si solo usa la autenticación de Windows para SQL Server, todos los usuarios deben ser parte de Active Directory.
  • Los DBA no tienen control sobre los inicios de sesión y los grupos de AD.
  • El DBA no conoce la pertenencia al grupo de AD. No recibe una notificación si se agrega o elimina un usuario de los grupos de AD.

Resumen

Esta publicación de blog describe los componentes clave de la autenticación de SQL Server y la autenticación de Windows. Espero que le ayude a comprender las diferencias entre estos métodos de autenticación para decidir cuál funciona mejor para su empresa y sus circunstancias.

La autenticación de SQL Server se puede usar en la misma máquina que SQL Server o en una conexión remota. Si trabaja en un entorno de Active Directory, se recomienda utilizar la autenticación de Windows. Si trabaja en un entorno que no es de Active Directory, puede utilizar la autenticación de SQL Server para las conexiones de la base de datos.

La autenticación de Windows proporciona más seguridad y flexibilidad para administrar los inicios de sesión en SQL Server. Por lo tanto, debe usarlo siempre que sea posible.