sp_addlogin (Transact-SQL)
Crea un nuevo inicio de sesión de SQL Server que permite a un usuario conectar a una instancia de SQL Server con la autenticación de SQL Server.
Importante |
---|
Esta característica se quitará en una versión futura de Microsoft SQL Server. Evite utilizar esta característica en nuevos trabajos de desarrollo y tenga previsto modificar las aplicaciones que actualmente la utilizan. En su lugar, use CREATE LOGIN. |
Nota de seguridad |
---|
Siempre que sea posible, utilice la autenticación de Windows. |
Sintaxis
sp_addlogin [ @loginame = ] 'login'
[ , [ @passwd = ] 'password' ]
[ , [ @defdb = ] 'database' ]
[ , [ @deflanguage = ] 'language' ]
[ , [ @sid = ] sid ]
[ , [ @encryptopt= ] 'encryption_option' ]
Argumentos
[ @loginame = ] 'login'
Es el nombre del inicio de sesión. login es de tipo sysname y no tiene valor predeterminado.[ @passwd = ] 'password'
Es la contraseña de inicio de sesión. password es de tipo sysname y su valor predeterminado es NULL.Nota de seguridad No utilice una contraseña en blanco. Utilice una contraseña segura.
[ @defdb = ] 'database'
Es la base de datos predeterminada del inicio de sesión (la base de datos a la que primero se conecta el inicio de sesión después de haber iniciado la sesión). database es de tipo sysname y su valor predeterminado es master.[ @deflanguage = ] 'language'
Es el idioma predeterminado del inicio de sesión. language es de tipo sysname y su valor predeterminado es NULL. Si no se especifica language, el valor predeterminado de language del nuevo inicio de sesión será el idioma predeterminado actual del servidor.[ @sid = ] 'sid'
Especifica el número de identificación de seguridad (SID). sid es de tipo varbinary(16) y su valor predeterminado es NULL. Si sid es NULL, el sistema genera un SID para el nuevo inicio de sesión. A pesar de la utilización del tipo de datos varbinary, los valores que no sean NULL deben tener exactamente 16 bytes de longitud y no deben ser valores que ya existan. Especificar el parámetro sid es útil, por ejemplo, cuando se generan scripts de inicios de sesión de SQL Server o se mueven dichos inicios de sesión desde un servidor a otro y se desea que los inicios de sesión tengan el mismo SID entre diferentes servidores.[ @encryptopt = ] 'encryption_option'
Especifica si la contraseña se pasa como texto sin cifrar o como hash de la contraseña de texto sin cifrar. Tenga en cuenta que no se realiza el cifrado. La palabra "cifrar" se utiliza aquí para la compatibilidad con versiones anteriores. Si se pasa una contraseña de texto sin cifrar, está en formato hash. El hash se almacena. encryption_option es de tipo varchar(20) y puede tener uno de los siguientes valores.Valor
Descripción
NULL
La contraseña se pasa como texto sin cifrar. Es el valor predeterminado.
skip_encryption
La contraseña ya está en formato hash. El Database Engine (Motor de base de datos) debe almacenar el valor sin volver a procesar el hash de la contraseña.
skip_encryption_old
La contraseña proporcionada estaba en formato hash en una versión anterior de SQL Server. El Database Engine (Motor de base de datos) debe almacenar el valor sin volver a procesar el hash de la contraseña. Esta opción sólo se proporciona para permitir la actualización.
Valores de código de retorno
0 (correcto) o 1 (error)
Notas
Los inicios de sesión de SQL Server pueden contener entre 1 y 128 caracteres, y pueden incluir letras, símbolos y números. Los inicios de sesión no pueden tener una barra diagonal inversa (\); no pueden ser un nombre de inicio de sesión reservado, por ejemplo sa o public o bien existir; no pueden ser NULL o una cadena vacía ('').
Si se proporciona el nombre de una base de datos predeterminada, puede conectarse a la base de datos especificada sin ejecutar la instrucción USE. Sin embargo, no puede usar la base de datos predeterminada hasta que no obtenga acceso a esa base de datos del propietario de ésta (utilizando sp_adduser o sp_addrolemember) o bien sp_addrole.
El número de SID es un GUID que identificará de forma exclusiva el inicio de sesión en el servidor.
Al cambiar el idioma predeterminado del servidor no se cambia el idioma predeterminado de los inicios de sesión existentes. Para cambiar el idioma predeterminado del servidor, use sp_configure.
Utilizar skip_encryption para suprimir el formato hash de contraseñas es útil si ésta ya está en hash cuando el inicio de sesión se agrega a SQL Server. Si la contraseña estaba en formato hash en una versión anterior de SQL Server, use skip_encryption_old.
sp_addlogin no se puede ejecutar desde una transacción definida por el usuario.
En la siguiente tabla se muestran varios procedimientos almacenados que se utilizan con sp_addlogin.
Procedimiento almacenado |
Descripción |
---|---|
Agrega un usuario o grupo de Windows. |
|
Cambia la contraseña de un usuario. |
|
Cambia la base de datos predeterminada de un usuario. |
|
Cambia el idioma predeterminado de un usuario. |
Permisos
Requiere el permiso ALTER ANY LOGIN.
Ejemplos
A. Crear un inicio de sesión de SQL Server
En el siguiente ejemplo se crea un inicio de sesión de SQL Server para el usuario Victoria, con una contraseña B1r12-36, sin especificar una base de datos predeterminada.
EXEC sp_addlogin 'Victoria', 'B1r12-36';
GO
B. Crear un inicio de sesión de SQL Server que tiene una base de datos predeterminada
En el siguiente ejemplo se crea un inicio de sesión de SQL Server para el usuario Albert, con una contraseña B5432-3M6 y una base de datos predeterminada corporate.
EXEC sp_addlogin 'Albert', 'B5432-3M6', 'corporate';
GO
B. Crear un inicio de sesión de SQL Server que tiene otro idioma predeterminado
En el siguiente ejemplo se crea un inicio de sesión de SQL Server para el usuario TzTodorov, con una contraseña 709hLKH7chjfwv, una base de datos predeterminada AdventureWorks y un idioma predeterminado Bulgarian.
EXEC sp_addlogin 'TzTodorov', '709hLKH7chjfwv', 'AdventureWorks', N'български'
D. Crear un inicio de sesión de SQL Server que tiene un SID específico
En el siguiente ejemplo se crea un inicio de sesión de SQL Server para el usuario Michael, con una contraseña B548bmM%f6, una base de datos predeterminada AdventureWorks, un idioma predeterminado us_english y un SID 0x0123456789ABCDEF0123456789ABCDEF.
EXEC sp_addlogin 'Michael', 'B548bmM%f6', 'AdventureWorks', 'us_english', 0x0123456789ABCDEF0123456789ABCDEF