sp_adduser (Transact-SQL)
Se aplica a: SQL Server
Agrega un nuevo usuario a la base de datos actual.
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 USER en su lugar.
Convenciones de sintaxis de Transact-SQL
Sintaxis
sp_adduser
[ @loginame = ] N'loginame'
[ , [ @name_in_db = ] N'name_in_db' ]
[ , [ @grpname = ] N'grpname' ]
[ ; ]
Argumentos
[ @loginame = ] N'loginame'
Nombre del inicio de sesión de SQL Server o de la cuenta de Windows. @loginame es sysname, sin ningún valor predeterminado. @loginame debe ser un inicio de sesión de SQL Server o una cuenta de Windows existente.
[ @name_in_db = ] N'name_in_db'
Nombre del nuevo usuario de base de datos. @name_in_db es sysname, con un valor predeterminado de NULL
. Si no se especifica @name_in_db , el nombre del nuevo usuario de base de datos tiene como valor predeterminado @loginame. Especificar @name_in_db proporciona al nuevo usuario un nombre en la base de datos diferente del nombre de inicio de sesión de nivel de servidor.
[ @grpname = ] N'grpname'
Rol de base de datos del que el nuevo usuario se convierte en miembro. @grpname es sysname, con un valor predeterminado de NULL
. @grpname debe ser un rol de base de datos válido en la base de datos actual.
Valores de código de retorno
0
(correcto) o 1
(erróneo).
Comentarios
sp_adduser
también crea un esquema que es el nombre del usuario.
Después de agregar un usuario, use las GRANT
instrucciones , DENY
y REVOKE
para definir los permisos que controlan las actividades realizadas por el usuario.
Use sys.server_principals
para mostrar una lista de inicios de sesión válidos.
Use sp_helprole
para mostrar una lista de los nombres de rol válidos. Cuando se especifica un rol, el usuario obtiene automáticamente los permisos definidos para ese rol. Si no se especifica un rol, el usuario obtiene los permisos concedidos al rol público predeterminado. Para agregar un usuario a un rol, se debe proporcionar un valor para el @name_in_db . (@name_in_db puede ser el mismo que @loginame).
El invitado de usuario ya existe en todas las bases de datos. Al agregar invitado de usuario, se habilita este usuario, si se ha deshabilitado anteriormente. De forma predeterminada, el invitado de usuario está deshabilitado en las nuevas bases de datos.
sp_adduser
no se puede ejecutar dentro de una transacción definida por el usuario.
No se puede agregar un usuario invitado porque ya existe un usuario invitado dentro de cada base de datos. Para habilitar el usuario invitado , conceda el permiso CONNECT de invitado como se muestra:
GRANT CONNECT TO guest;
GO
Permisos
Requiere la propiedad de la base de datos.
Ejemplos
A Adición de un usuario de base de datos
En el ejemplo siguiente se agrega el usuario Vidur
de la base de datos al rol existente Recruiting
en la base de datos actual mediante el inicio de sesión Vidur
de SQL Server existente.
EXEC sp_adduser 'Vidur', 'Vidur', 'Recruiting';
B. Adición de un usuario de base de datos con el mismo identificador de inicio de sesión
En el ejemplo siguiente se agrega el usuario Arvind
a la base de datos actual para el inicio de sesión Arvind
de SQL Server. Este usuario pertenece al rol público predeterminado.
EXEC sp_adduser 'Arvind';
C. Agregar un usuario de base de datos con un nombre diferente al de su inicio de sesión de nivel de servidor
En el ejemplo siguiente se agrega el inicio de sesión BjornR
de SQL Server a la base de datos actual que es un nombre de usuario de Bjorn
y se agrega un usuario Bjorn
de base de datos al Production
rol de base de datos.
EXEC sp_adduser 'BjornR', 'Bjorn', 'Production';