sp_addlogin (Transact-SQL)
Se aplica a: SQL Server
Crea un nuevo inicio de sesión de SQL Server que permite a un usuario conectarse a una instancia de SQL Server mediante la autenticación de SQL Server.
Importante
Esta característica se quitará en una versión futura de SQL Server. Evite utilizar esta característica en nuevos trabajos de desarrollo y tenga previsto modificar las aplicaciones que actualmente la utilizan. Use CREATE LOGIN en su lugar.
Importante
Siempre que sea posible, utilice la autenticación de Windows.
Convenciones de sintaxis de Transact-SQL
Sintaxis
sp_addlogin
[ @loginame = ] N'loginame'
[ , [ @passwd = ] N'passwd' ]
[ , [ @defdb = ] N'defdb' ]
[ , [ @deflanguage = ] N'deflanguage' ]
[ , [ @sid = ] sid ]
[ , [ @encryptopt = ] 'encryptopt' ]
[ ; ]
Argumentos
[ @loginame = ] N'loginame'
Nombre del inicio de sesión. @loginame es sysname, sin ningún valor predeterminado.
[ @passwd = ] N'passwd'
La contraseña de inicio de sesión. @passwd es sysname, con un valor predeterminado de NULL
.
Importante
No utilice una contraseña en blanco. Utilice una contraseña segura.
[ @defdb = ] N'defdb'
La base de datos predeterminada del inicio de sesión (la base de datos a la que el inicio de sesión se conecta por primera vez después de iniciar sesión). @defdb es sysname, con un valor predeterminado de master
.
[ @deflanguage = ] N'deflanguage'
Idioma predeterminado del inicio de sesión. @deflanguage es sysname, con un valor predeterminado de NULL
. Si no se especifica @deflanguage, el @deflanguage predeterminado del nuevo inicio de sesión se establece en el idioma predeterminado actual del servidor.
[ @sid = ] sid
Número de identificación de seguridad (SID). @sid es varbinary(16), con un valor predeterminado de NULL
. Si @sid es NULL
, el sistema genera un SID para el nuevo inicio de sesión. A pesar del uso de un tipo de datos varbinary , los valores distintos NULL
de deben tener exactamente 16 bytes de longitud y aún no pueden existir. Especificar @sid es útil, por ejemplo, al crear scripts o mover inicios de sesión de SQL Server de un servidor a otro y desea que los inicios de sesión tengan el mismo SID en servidores diferentes.
[ @encryptopt = ] 'encryptopt'
Especifica si la contraseña se pasa como texto sin cifrar o como hash de la contraseña de texto sin cifrar. No se realiza ningún cifrado. La palabra "cifrar" se utiliza aquí para la compatibilidad con versiones anteriores. Si se pasa una contraseña de texto no cifrado, se aplica un hash. El hash se almacena. @encryptopt es varchar(20) y puede ser uno de los siguientes valores.
Valor | Descripción |
---|---|
NULL (valor predeterminado) |
La contraseña se pasa como texto sin cifrar. |
skip_encryption |
La contraseña ya está en formato hash. El Motor de base de datos debe almacenar el valor sin volver a guardarlo. |
skip_encryption_old |
La contraseña proporcionada se ha hashizado mediante una versión anterior de SQL Server. El Motor de base de datos debe almacenar el valor sin volver a guardarlo. Esta opción solo se proporciona para permitir la actualización. |
Valores de código de retorno
0
(correcto) o 1
(erróneo).
Comentarios
Los inicios de sesión de SQL Server pueden contener de 1 a 128 caracteres, incluidas letras, símbolos y números. Los inicios de sesión no pueden contener una barra diagonal inversa (\
); ser un nombre de inicio de sesión reservado, por ejemplo sa o público, o ya existen; o ser o una NULL
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 USE
instrucción . Sin embargo, no puede usar la base de datos predeterminada hasta que el propietario de la base de datos tenga acceso a esa base de datos (mediante sp_adduser, sp_addrolemember) o sp_addrole.
El número de SID es un GUID que identifica de forma única el inicio de sesión en el servidor.
Cambiar el idioma predeterminado del servidor no cambia el idioma predeterminado de los inicios de sesión existentes. Para cambiar el idioma predeterminado del servidor, use sp_configure.
El uso skip_encryption
de para suprimir el hash de contraseña es útil si la contraseña ya está hash cuando se agrega el inicio de sesión a SQL Server. Si la contraseña se ha hashizado mediante una versión anterior de SQL Server, use skip_encryption_old
.
sp_addlogin
no se puede ejecutar dentro de una transacción definida por el usuario.
En la tabla siguiente se muestran varios procedimientos almacenados que se usan con sp_addlogin
.
Procedimiento almacenado | Descripción |
---|---|
sp_grantlogin | Agrega un usuario o grupo de Windows. |
sp_password | Cambia la contraseña de un usuario. |
sp_defaultdb | Cambia la base de datos predeterminada de un usuario. |
sp_defaultlanguage | Cambia el idioma predeterminado de un usuario. |
Permisos
Requiere el permiso ALTER ANY LOGIN.
Ejemplos
A Creación de un inicio de sesión de SQL Server
En el ejemplo siguiente se crea un inicio de sesión de SQL Server para el usuario Victoria
, con una contraseña de , sin especificar una base de B1r12-36
datos predeterminada.
EXEC sp_addlogin 'Victoria', 'B1r12-36';
GO
B. Creación de un inicio de sesión de SQL Server que tenga una base de datos predeterminada
En el ejemplo siguiente se crea un inicio de sesión de SQL Server para el usuario Albert
, con una contraseña de y una base de B5432-3M6
datos predeterminada de corporate
.
EXEC sp_addlogin 'Albert', 'B5432-3M6', 'corporate';
GO
C. Creación de un inicio de sesión de SQL Server que tenga un idioma predeterminado diferente
En el ejemplo siguiente se crea un inicio de sesión de SQL Server para el usuario TzTodorov
, con una contraseña de , una base de 709hLKH7chjfwv
datos predeterminada de AdventureWorks2022
y un idioma predeterminado de Bulgarian
.
EXEC sp_addlogin 'TzTodorov', '709hLKH7chjfwv', 'AdventureWorks2022', N'български'
D. Creación de un inicio de sesión de SQL Server que tenga un SID específico
En el ejemplo siguiente se crea un inicio de sesión de SQL Server para el usuario Michael
, con una contraseña de , una base de B548bmM%f6
datos predeterminada de AdventureWorks2022
, un idioma predeterminado de us_english
y un SID de 0x0123456789ABCDEF0123456789ABCDEF
.
EXEC sp_addlogin 'Michael', 'B548bmM%f6', 'AdventureWorks2022', 'us_english', 0x0123456789ABCDEF0123456789ABCDEF