Compartir a través de


sp_adduser (Transact-SQL)

Agrega un nuevo usuario a la base de datos actual.

Nota importanteImportante

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 USER.

Icono de vínculo a temas Convenciones de sintaxis de Transact-SQL

Sintaxis

sp_adduser [ @loginame = ] 'login'  
    [ , [ @name_in_db = ] 'user' ] 
    [ , [ @grpname = ] 'role' ] 

Argumentos

  • [ @loginame = ] 'login'
    Es el nombre del inicio de sesión de SQL Server o el inicio de sesión de Windows. login es de tipo sysname y no tiene valor predeterminado. login debe ser un inicio de sesión de SQL Server existente o el inicio de sesión de Windows.

  • [ @name_in_db = ] 'user'
    Es el nombre del nuevo usuario de la base de datos. user es de tipo sysname y su valor predeterminado es NULL. Si no se especifica user, el nuevo nombre del usuario es login de forma predeterminada. Al especificar user se da al nuevo usuario un nombre en la base de datos diferente del nombre de inicio de sesión de nivel de servidor.

  • [ @grpname = ] 'role'
    Es el rol de base de datos del que el nuevo usuario forma parte automáticamente. role es de tipo sysname y su valor predeterminado es NULL. role 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 (error)

Comentarios

sp_adduser también creará un esquema con el nombre del usuario.

Después de agregar un usuario, utilice las instrucciones GRANT, DENY y REVOKE para definir los permisos que controlan las actividades del usuario.

Para presentar la lista de los nombres de inicio de sesión válidos, utilice sys.server_principals.

Para presentar la lista de los nombres de rol válidos, utilice sp_helprole. 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 public predeterminado. Para agregar un usuario a un rol, debe suministrar un valor para el user name. (username puede ser el mismo que login_id).

El usuario guest ya existe en todas las bases de datos. Al agregar el usuario guest se habilitará este usuario, si se deshabilitó anteriormente. De forma predeterminada, el usuario guest está deshabilitado en las bases de datos nuevas.

sp_adduser no se puede ejecutar en una transacción definida por el usuario.

No puede agregar un usuario guest porque el usuario guest ya existe en todas las base de datos. Puede habilitar el usuario guest, conceda permiso CONNECT a guest como se muestra a continuación:

GRANT CONNECT TO guest;
GO

Permisos

Requiere la propiedad de la base de datos.

Ejemplos

A.Agregar un usuario de base de datos

En el siguiente ejemplo se agrega el usuario de base de datos Vidur al rol Recruiting existente en la base de datos actual, utilizando el inicio de sesión Vidur de SQL Server existente.

EXEC sp_adduser 'Vidur', 'Vidur', 'Recruiting'

B.Agregar un usuario de base de datos con el mismo Id. de inicio de sesión

En el siguiente ejemplo se agrega el usuario Arvind a la base de datos para el inicio de sesión Arvind de SQL Server . Este usuario pertenece al rol public predeterminado.

EXEC sp_adduser 'Arvind'

C.Agregar un usuario de base de datos con un nombre diferente de su inicio de sesión de nivel de servidor

En el siguiente ejemplo se agrega el inicio de sesión BjornR de SQL Server a la base de datos actual que tiene un nombre de usuario Bjorn, y agrega un usuario de base de datos Bjorn al rol de base de datos Production.

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

Vea también

Referencia

Procedimientos almacenados de seguridad (Transact-SQL)

sys.server_principals (Transact-SQL)

sp_addrole (Transact-SQL)

CREATE USER (Transact-SQL)

sp_dropuser (Transact-SQL)

sp_grantdbaccess (Transact-SQL)

sp_grantlogin (Transact-SQL)

Procedimientos almacenados del sistema (Transact-SQL)