Autenticación en SQL Server (ADO.NET)
Actualización: November 2007
SQL Server admite dos modos de autenticación, el modo de autenticación de Windows y el modo mixto.
La autenticación de Windows es el modo predeterminado, y a menudo se denomina seguridad integrada debido a que este modelo de seguridad de SQL Server está estrechamente integrado con Windows. Para iniciar sesión en SQL Server, se confía en las cuentas de usuario y grupo específicas de Windows. Los usuarios de Windows que ya hayan sido autenticados no tienen que presentar credenciales adicionales.
El modo mixto admite la autenticación tanto de Windows como de SQL Server. Los pares de nombre de usuario y contraseña se mantienen en SQL Server.
Nota de seguridad: |
---|
Se recomienda utilizar la autenticación de Windows siempre que sea posible. Este modo de autenticación usa una serie de mensajes cifrados para autenticar usuarios en SQL Server. Cuando se usan los inicios de sesión de SQL Server, sus nombres y contraseñas se pasan a través de la red, lo que hace de éste un método menos seguro. |
Con la autenticación de Windows, los usuarios ya registrados en Windows no tienen que iniciar sesión por separado en SQL Server. El siguiente valor de SqlConnection.ConnectionString especifica la autenticación de Windows sin que sea necesario especificar un nombre de usuario ni una contraseña.
"Server=MSSQL1;Database=AdventureWorks;Integrated Security=true;
Nota: |
---|
Los inicios de sesión son distintos de los usuarios de base de datos. Los inicios de sesión o grupos de Windows se deben asignar a usuarios o funciones de base de datos en una operación independiente. A continuación se conceden permisos a los usuarios o las funciones para obtener acceso a los objetos de base de datos. |
Escenarios de autenticación
Por lo general la autenticación de Windows es la mejor opción en las siguientes situaciones:
Existe un controlador de dominio.
La aplicación y la base de datos se encuentran en el mismo equipo.
Usa una instancia de SQL Server Express.
Los inicios de sesión de SQL se usan habitualmente en las siguientes situaciones:
Si se tiene un grupo de trabajo.
Los usuarios se conectan desde diferentes dominios que no son de confianza.
Aplicaciones de Internet, como ASP.NET.
Nota: |
---|
La especificación de la autenticación de Windows no deshabilita los inicios de sesión de SQL Server. Para deshabilitar los inicios de sesión de SQL Server de privilegios elevados, use la sentencia ALTER LOGIN DISABLE de Transact-SQL. |
Tipos de inicios de sesión
SQL Server 2000 admite tres tipos de inicios de sesión:
Una cuenta de usuario de Windows local o una cuenta de dominio de confianza. SQL Server se basa en Windows para autenticar las cuentas de usuario de Windows.
Grupo de Windows. Cuando se concede acceso a un grupo de Windows, se concede acceso a todos los inicios de sesión de usuario de Windows miembros de dicho grupo.
Inicio de sesión de SQL Server. SQL Server almacena el nombre de usuario y un valor hash de la contraseña en la base de datos maestra, y usa métodos internos de autenticación para comprobar los intentos de inicio de sesión.
Nota: |
---|
SQL Server 2005 ha agregado inicios de sesión creados a partir de certificados o claves asimétricas que sólo se usan para la firma del código. No se pueden utilizar para conectarse a SQL Server. |
Modo mixto de autenticación
Si tiene que usar el modo mixto de autenticación, debe crear inicios de sesión de SQL Server, que se almacenan en SQL Server. A continuación, debe proporcionar el nombre de usuario y la contraseña de SQL Server en tiempo de ejecución.
Nota de seguridad: |
---|
SQL Server se instala con un inicio de sesión de SQL Server denominado sa (como abreviatura de "system administrator", administrador de sistema). Asigne una contraseña segura al inicio de sesión sa y no use el inicio de sesión sa en la aplicación. El inicio de sesión sa se asigna a la función fija de servidor sysadmin, que dispone de credenciales administrativas irrevocables en todo el servidor. Si un atacante obtiene acceso como administrador de sistema, los daños pueden ser incalculables. Todos los miembros del grupo BUILTIN\Administrators de Windows (el grupo de administradores locales) son miembros de la función sysadmin de forma predeterminada, pero se pueden quitar de esta función. |
SQL Server 2005 introduce los mecanismos de directiva de contraseñas de Windows para los inicios de sesión de SQL Server cuando se ejecuta en Windows Server 2003 o versiones posteriores. Las directivas de complejidad de contraseñas están diseñadas para impedir ataques por la fuerza bruta mediante el aumento del número de contraseñas posibles. SQL Server 2005 puede aplicar las mismas directivas de complejidad y expiración que se usan en Windows Server 2003 a las contraseñas que se usan en SQL Server.
Nota de seguridad: |
---|
Cuando se utiliza la concatenación de cadenas de conexión a partir de la entrada de usuario, el sistema se hace vulnerable ante los ataques de inyección de cadenas de conexión. Utilice SqlConnectionStringBuilder para crear cadenas de conexión sintácticamente válidas en tiempo de ejecución. Para obtener más información, vea Generadores de cadenas de conexión (ADO.NET). |
Recursos externos
Para obtener más información, vea los siguientes recursos.
Recurso |
Descripción |
---|---|
Entidades de seguridad en los Libros en pantalla de SQL Server 2008 |
Describe los inicios de sesión y otras entidades de seguridad de SQL Server 2008. |
Entidades de seguridad en los Libros en pantalla de SQL Server 2005 |
Describe los inicios de sesión y otras entidades de seguridad de SQL Server 2005. |
Inicios de sesión, en los Libros en pantalla de SQL Server 2000 |
Describe los inicios de sesión y otras entidades de seguridad de SQL Server 2000. |
Vea también
Conceptos
Escenarios de seguridad de aplicaciones en SQL Server (ADO.NET)
Otros recursos
Proteger aplicaciones de ADO.NET