Autenticación en SQL ServerAuthentication in SQL Server

SQL Server admite dos modos de autenticación, el modo de autenticación de Windows y el modo mixto.SQL Server supports two authentication modes, Windows authentication mode and mixed mode.

  • La autenticación de Windows es el modo predeterminado y a veces se le conoce como seguridad integrada porque este modelo de seguridad de SQL Server está estrechamente integrado en Windows.Windows authentication is the default, and is often referred to as integrated security because this SQL Server security model is tightly integrated with Windows. Se confía en las cuentas de usuario y grupo específicas de Windows para iniciar sesión en SQL Server.Specific Windows user and group accounts are trusted to log in to SQL Server. Los usuarios de Windows que ya se han autenticado no tienen que presentar credenciales adicionales.Windows users who have already been authenticated do not have to present additional credentials.

  • El modo mixto admite la autenticación mediante Windows y SQL Server.Mixed mode supports authentication both by Windows and by SQL Server. Los pares de nombre de usuario y contraseña se mantienen en SQL Server.User name and password pairs are maintained within SQL Server.

Importante

Se recomienda usar la autenticación de Windows siempre que sea posible.We recommend using Windows authentication wherever possible. La autenticación de Windows usa una serie de mensajes cifrados para autenticar a los usuarios en SQL Server.Windows authentication uses a series of encrypted messages to authenticate users in SQL Server. Cuando se usan inicios de sesión de SQL Server, los nombres de inicio de sesión y las contraseñas cifrados se pasan a través de la red, lo que hace de este un método menos seguro.When SQL Server logins are used, SQL Server login names and encrypted passwords are passed across the network, which makes them less secure.

Con la autenticación de Windows, los usuarios ya están registrados en Windows y no es necesario que inicien sesión por separado en SQL Server.With Windows authentication, users are already logged onto Windows and do not have to log on separately to SQL Server. La siguiente SqlConnection.ConnectionString especifica autenticación de Windows sin que los usuarios tengan que proporcionar un nombre de usuario ni una contraseña.The following SqlConnection.ConnectionString specifies Windows authentication without requiring users to provide a user name or password.

"Server=MSSQL1;Database=AdventureWorks;Integrated Security=true;"

Nota

Los inicios de sesión son distintos de los usuarios de base de datos.Logins are distinct from database users. Debe asignar inicios de sesión o grupos de Windows a usuarios o roles de base de datos en una operación independiente.You must map logins or Windows groups to database users or roles in a separate operation. A continuación, conceda permisos a los usuarios o roles para tener acceso a los objetos de base de datos.You then grant permissions to users or roles to access database objects.

Escenarios de autenticaciónAuthentication Scenarios

La autenticación de Windows suele ser la mejor opción en las siguientes situaciones:Windows authentication is usually the best choice in the following situations:

  • Hay un controlador de dominio.There is a domain controller.

  • La aplicación y la base de datos están en el mismo equipo.The application and the database are on the same computer.

  • Está usando una instancia de SQL Server Express o LocalDB.You are using an instance of SQL Server Express or LocalDB.

Los inicios de sesión de SQL Server se suelen usar en las siguientes situaciones:SQL Server logins are often used in the following situations:

  • Si tiene un grupo de trabajo.If you have a workgroup.

  • Los usuarios se conectan desde dominios diferentes que no son de confianza.Users connect from different, non-trusted domains.

  • Aplicaciones de Internet, como ASP.NET.Internet applications, such as ASP.NET.

Nota

La especificación de autenticación de Windows no deshabilita los inicios de sesión de SQL Server.Specifying Windows authentication does not disable SQL Server logins. Para deshabilitar los inicios de sesión de SQL Server de privilegios elevados, use la instrucción ALTER LOGIN DISABLE de Transact-SQL.Use the ALTER LOGIN DISABLE Transact-SQL statement to disable highly-privileged SQL Server logins.

Tipos de inicios de sesiónLogin Types

SQL Server admite tres tipos de inicios de sesión:SQL Server supports three types of logins:

  • Una cuenta de usuario local de Windows o una cuenta de dominio de confianza.A local Windows user account or trusted domain account. SQL Server se basa en Windows para autenticar las cuentas de usuario de Windows.SQL Server relies on Windows to authenticate the Windows user accounts.

  • Grupo de Windows.Windows group. La concesión de acceso a un grupo de Windows otorga acceso a todos los inicios de sesión de usuario de Windows que son miembros del grupo.Granting access to a Windows group grants access to all Windows user logins that are members of the group.

  • Inicio de sesión de SQL Server.SQL Server login. SQL Server almacena el nombre de usuario y un hash de la contraseña en la base de datos master mediante métodos de autenticación internos para comprobar los intentos de inicio de sesión.SQL Server stores both the username and a hash of the password in the master database, by using internal authentication methods to verify login attempts.

Nota

SQL Server proporciona inicios de sesión creados a partir de certificados o claves asimétricas que solo se usan para la firma del código.SQL Server provides logins created from certificates or asymmetric keys that are used only for code signing. No se pueden usar para conectarse a SQL Server.They cannot be used to connect to SQL Server.

Modo mixto de autenticaciónMixed Mode Authentication

Si tiene que usar la autenticación de modo mixto, debe crear inicios de sesión de SQL Server, que se almacenan en SQL Server.If you must use mixed mode authentication, you must create SQL Server logins, which are stored in SQL Server. Luego debe proporcionar el nombre de usuario y la contraseña de SQL Server en tiempo de ejecución.You then have to supply the SQL Server user name and password at run time.

Importante

SQL Server se instala con un inicio de sesión de SQL Server denominado sa (una abreviatura de "administrador del sistema").SQL Server installs with a SQL Server login named sa (an abbreviation of "system administrator"). Asigne una contraseña segura al inicio de sesión de sa y no use el inicio de sesión sa en la aplicación.Assign a strong password to the sa login and do not use the sa login in your application. El inicio de sesión de sa se asigna al rol fijo de servidor sysadmin, que tiene credenciales administrativas irrevocables en todo el servidor.The sa login maps to the sysadmin fixed server role, which has irrevocable administrative credentials on the whole server. No hay límites para los posibles daños si un atacante obtiene acceso como administrador del sistema.There are no limits to the potential damage if an attacker gains access as a system administrator.

SQL Server proporciona mecanismos de directiva de contraseñas de Windows para inicios de sesión de SQL Server.SQL Server provides Windows password policy mechanisms for SQL Server logins. Las directivas de complejidad de contraseñas están diseñadas para impedir ataques por fuerza bruta mediante el aumento del número de contraseñas posibles.Password complexity policies are designed to deter brute force attacks by increasing the number of possible passwords. SQL Server puede aplicar las mismas directivas de complejidad y expiración a las contraseñas que se usan en SQL Server.SQL Server can apply the same complexity and expiration policies to passwords used inside SQL Server.

Importante

La concatenación de cadenas de conexión a partir de datos proporcionados por el usuario puede dejarle vulnerable ante ataques de inyección de cadenas de conexión.Concatenating connection strings from user input can leave you vulnerable to a connection string injection attack. Utilice SqlConnectionStringBuilder para crear cadenas de conexión sintácticamente válidas en tiempo de ejecución.Use the SqlConnectionStringBuilder to create syntactically valid connection strings at run time. Para obtener más información, vea Generadores de cadenas de conexión.For more information, see Connection String Builders.

Recursos externosExternal Resources

Para obtener más información, vea los recursos siguientes.For more information, see the following resources.

ResourceResource DescripciónDescription
Entidades de seguridadPrincipals Describe los inicios de sesión y otras entidades de seguridad de SQL Server.Describes logins and other security principals in SQL Server.

Consulte tambiénSee also