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 GRANTinstrucciones , DENYy 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 Vidurde 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 Arvindde 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 Bjorny se agrega un usuario Bjorn de base de datos al Production rol de base de datos.

EXEC sp_adduser 'BjornR', 'Bjorn', 'Production';