2009-04-15 19 views

Respuesta

4

Idealmente, la autenticación de Windows se debe utilizar cuando se trabaja en un tipo de intranet de un entorno.

Considerando que, la autenticación de SQL Server se puede utilizar en todos los otros tipos de casos.

Aquí hay un enlace que podría ayudar.

Windows Authentication vs. SQL Server Authentication

2

No sé SQL Server, así como otros DBMS, pero me imagino que el beneficio es el mismo que con DB2 y Oracle. Si usa la autenticación de Windows, solo debe mantener un conjunto de usuarios y/o contraseñas, el de Windows, que ya está hecho para usted.

La autenticación DBMS significa tener un conjunto separado de usuarios y/o contraseñas que deben mantenerse.

Además, las contraseñas de Windows les permiten ser configuradas centralmente para la empresa (Active Directory) mientras que SQLServer tiene que mantener un conjunto para cada instancia de DBMS.

3

Si desea autenticar a los usuarios frente a los usuarios del sistema de Windows [creados por el Administrador], en ese caso irá a la Autenticación de Windows en su Aplicación.

Pero en caso de que quiera autenticar a los usuarios contra el conjunto de usuarios disponibles en la base de datos de su aplicación, entonces en ese caso querrá ir a Autenticación SQL.

Precisamente si su aplicación es una aplicación web ASP.NET, puede usar controles de inicio de sesión estándar que dependen de Proveedores como SqlMembershipProvider, SqlProfileProvider. Puede configurar sus controles de inicio de sesión y su aplicación, ya sea que se autentique contra usuarios de Windows o usuarios de bases de datos de aplicaciones. En el primer caso, se llamará Autenticación de Windows y la posterior se conocerá como Autenticación de SQL.

+0

Oye, pareces un poco joven para usar términos como "infraestructura de dominio" - ¿debería temer a la próxima generación? :-) – paxdiablo

+0

Hola Pax, estoy de acuerdo en que esa no es la palabra correcta. Voy a editar eso con la observación adecuada. Gracias por el comentario. –

23

SQL Server tiene su propio sistema integrado de seguridad que cubre los inicios de sesión y las funciones. Esto es separado y paralelo a los usuarios y grupos de Windows. Puede usar solo seguridad SQL y luego toda la administración ocurrirá dentro del servidor SQL y no hay conexión entre esos inicios de sesión y los usuarios de Windows. Si usa el modo mixto, los usuarios de Windows son tratados como inicios de sesión de SQL.

Hay una serie de características de cada enfoque -

1) Si desea utilizar la agrupación de conexiones que tiene que utilizar inicios de sesión SQL, o todos comparten el usuario mismas ventanas - no es una buena idea.

2) Si desea hacer un seguimiento de lo que está haciendo un usuario en particular, entonces tiene sentido usar la autenticación de Windows.

3) Usar las herramientas de Windows para administrar usuarios es mucho más poderoso que SQL, pero el vínculo entre las dos es tenue, por ejemplo, si elimina un usuario de Windows, los datos relacionados dentro de SQL no se actualizan.

+2

Mismo usuario de Windows para la agrupación de conexiones no es una mala idea si se trata de servicios (o servicios web) y aún así obtiene un beneficio para usuarios individuales también (pero tendrá muchas más conexiones en más pools) – Brody

1

Creo que la principal diferencia es la seguridad.

Autenticación de Windows significa que la identidad se maneja como parte del proceso de limpieza de Windows y ahora la contraseña siempre está 'disponible' para la intercepción.

Autenticación SQL significa que tiene que almacenar (o proporcionar) un nombre de usuario y una contraseña, lo que hace que sea mucho más fácil de violar. Se ha realizado un gran esfuerzo para que la autenticación de Windows sea muy robusta y segura.

Podría sugerir que si implementa la Autenticación de Windows, use Grupos y Roles para hacerlo. Grupos en Windows y Roles en SQL. Tener que configurar muchos usuarios en SQL es un gran problema cuando puede configurar el grupo y luego agregar a cada usuario al grupo. (Creo que la mayoría de la seguridad debería hacerse de esta manera de todos modos).

15

autenticación de SQL

autenticación de SQL es la típica de autenticación utilizado para diversos sistemas de bases de datos, compuesta por un nombre de usuario y una contraseña. Obviamente, una instancia de SQL Server puede tener múltiples cuentas de usuario (usando autenticación de SQL) con diferentes nombres de usuario y contraseñas. En los servidores compartidos donde diferentes usuarios deberían tener acceso a diferentes bases de datos, se debe usar la autenticación SQL. Además, cuando un cliente (computadora remota) se conecta a una instancia de SQL Server en otra computadora que no sea aquella en la que se está ejecutando el cliente, se necesita autenticación de SQL Server. Incluso si no define ninguna cuenta de usuario de SQL Server, en el momento de la instalación se agrega una cuenta de root - sa - con la contraseña que proporcionó. Al igual que cualquier cuenta de SQL Server, esto se puede utilizar para iniciar sesión de forma local o remota, sin embargo, si una aplicación es la que hace el inicio de sesión y debe tener acceso a una sola base de datos, se recomienda encarecidamente que no lo haga. use la cuenta sa, pero cree una nueva con acceso limitado. En general, la autenticación SQL es el principal método de autenticación que se utilizará, mientras que la que revisamos a continuación - Autenticación de Windows - es más conveniente.

autenticación de Windows

Cuando se está accediendo a SQL Server desde la misma computadora que está instalada encendido, no se le debería pedir que escribir un nombre de usuario y contraseña. Y no lo es, si usa la Autenticación de Windows. Con la Autenticación de Windows, el servicio SQL Server ya sabe que alguien ha iniciado sesión en el sistema operativo con las credenciales correctas, y utiliza estas credenciales para permitir al usuario acceder a sus bases de datos. Por supuesto, esto funciona siempre que el cliente resida en la misma computadora que el servidor SQL, o siempre que el cliente de conexión coincida con las credenciales de Windows del servidor. La autenticación de Windows se usa a menudo como una forma más conveniente de iniciar sesión en una instancia de SQL Server sin escribir un nombre de usuario y una contraseña; sin embargo, cuando se envuelven más usuarios o se establecen conexiones remotas con SQL Server, se debe usar la autenticación SQL .

+0

Usted también puede usar la Autenticación de Windows sin proporcionar Nombre de usuario y Contraseña (para que SQL Server Management Studio use el Usuario que inició la aplicación) para conectarse a un Servidor SQL distante. –

+0

@Camille G, si está autenticado con autenticación SQL, ¿eso le permite acceder a cualquier base de datos en el sistema? – MSIS

+0

@MSIS ¡Depende! El usuario de SQL debe tener algunos derechos en cada base de datos para acceder a ellos, pero si el usuario tiene algunos derechos especiales (sysadmin o similar) puede tener acceso a cada base de datos. –

1

modos de autenticación de SQL Server

SQL Server 2008 ofrece dos opciones de modo autenticación:

de Windows modo de autenticación obliga a los usuarios a proporcionar un nombre de usuario de Windows y una contraseña válidos para acceder al servidor de base de datos. En entornos empresariales, estas credenciales normalmente son credenciales de dominio de Active Directory.

El modo de autenticación mixta permite el uso de credenciales de Windows pero las complementa con cuentas de usuario locales de SQL Server que el administrador puede crear y mantener dentro de SQL Server.

1

La autenticación es el proceso de confirmación de la identidad de un usuario o computadora. El proceso normalmente consta de cuatro pasos: El usuario realiza un reclamo de identidad, generalmente proporcionando un nombre de usuario.Por ejemplo, podría hacer este reclamo diciendo a una base de datos que mi nombre de usuario es "mchapple". El sistema desafía al usuario a probar su identidad. El desafío más común es una solicitud de contraseña. El usuario responde al desafío proporcionando la prueba solicitada. En este ejemplo, proporcionaría la base de datos con mi contraseña El sistema verifica que el usuario haya proporcionado pruebas aceptables, por ejemplo, verificando la contraseña contra una base de datos de contraseñas local o usando un servidor de autenticación centralizado

2

Al otorgar un usuario acceso a una base de datos hay algunas consideraciones que deben hacerse con ventajas y desventajas en términos de usabilidad y seguridad. Aquí tenemos dos opciones para autenticar y otorgar permisos a los usuarios. El primero es otorgar a todos el acceso a la cuenta sa (administrador de sistemas) y luego restringir los permisos manualmente al mantener una lista de los usuarios a los que se pueden otorgar o denegar permisos según sea necesario. Esto también se conoce como el método de autenticación SQL. Existen importantes fallas de seguridad en este método, como se detalla a continuación. La segunda y mejor opción es que el Active Directory (AD) maneje toda la autenticación y autorización necesarias, también conocida como autenticación de Windows. Una vez que el usuario inicia sesión en su computadora, la aplicación se conectará a la base de datos utilizando las credenciales de inicio de sesión de Windows en el sistema operativo.

El principal problema de seguridad con el uso de la opción SQL es que viola el principio de mínimo privilegio (POLP) que es otorgar al usuario los permisos absolutamente necesarios que necesitan y nada más. Al usar la cuenta sa, presenta serios defectos de seguridad. Se viola el POLP porque cuando la aplicación usa la cuenta sa tienen acceso a todo el servidor de la base de datos. La autenticación de Windows, por otro lado, sigue al POLP al solo otorgar acceso a una base de datos en el servidor.

El segundo problema es que no es necesario que cada instancia de la aplicación tenga la contraseña de administrador. Esto significa que cualquier aplicación es un punto de ataque potencial para todo el servidor. Windows solo usa las credenciales de Windows para iniciar sesión en SQL Server. Las contraseñas de Windows se almacenan en un repositorio en lugar de en la instancia de la base de datos SQL y la autenticación tiene lugar internamente en Windows sin tener que almacenar contraseñas de SA en la aplicación.

Un tercer problema de seguridad surge al usar el método SQL implica contraseñas. Tal como se presenta en el sitio web de Microsoft y en varios foros de seguridad, el método SQL no 'exige el cambio de contraseña o el cifrado, sino que se envían como texto claro a través de la red. Y el método SQL no se bloquea después de intentos fallidos, lo que permite un intento prolongado de inmiscuirse. Sin embargo, Active Directory utiliza el protocolo Kerberos para cifrar contraseñas al tiempo que emplea un sistema de cambio de contraseña y bloqueo después de intentos fallidos.

También existen desventajas de eficiencia. Dado que requerirá que el usuario ingrese las credenciales cada vez que quiera acceder a la base de datos, los usuarios pueden olvidar sus credenciales.

Si un usuario es eliminado, deberá eliminar sus credenciales de cada instancia de la aplicación. Si tiene que actualizar la contraseña de administrador, tendrá que actualizar cada instancia del servidor SQL. Esto lleva mucho tiempo y es inseguro, deja abierta la posibilidad de que un usuario despedido retenga el acceso al servidor SQL. Con el método de Windows, ninguna de estas preocupaciones surge. Todo está centralizado y manejado por el AD.

Las únicas ventajas de usar el método SQL radican en su flexibilidad. Puede acceder desde cualquier sistema operativo y red, incluso de forma remota. Algunos sistemas antiguos heredados, así como algunas aplicaciones basadas en la web, solo pueden admitir un acceso sa.

El método AD también proporciona herramientas que ahorran tiempo, como grupos, para facilitar la tarea de agregar y eliminar usuarios, y la capacidad de rastreo del usuario.

Incluso si logra corregir estos fallos de seguridad en el método SQL, estaría reinventando la rueda. Al considerar las ventajas de seguridad proporcionadas por la autenticación de Windows, incluidas las políticas de contraseñas y siguiendo el POLP, es una opción mucho mejor que la autenticación SQL. Por lo tanto, se recomienda encarecidamente utilizar la opción de autenticación de Windows.

0

Autenticación Mssql es muy preferible siempre que sea posible. Le permite conformarse con un dominio de Windows existente que ya se usa en su lugar de trabajo, y no necesita conocer las contraseñas de sus usuarios.

Sin embargo, parece que no sería posible utilizarlo en el caso de que la máquina del servidor no se autentique en la intranet de su lugar de trabajo local.

Si usa la autenticación sql, la seguridad dependerá exclusivamente de usted.

Si usa la autenticación de Microsoft, la seguridad se ocupa principalmente de usted, pero tendrá que lidiar con restricciones adicionales.

Cuestiones relacionadas