sp_adduser (Transact-SQL)sp_adduser (Transact-SQL)

Se aplica a:Applies to: sí SQL ServerSQL Server (todas las versiones compatibles)yesSQL ServerSQL Server (all supported versions) Se aplica a:Applies to: sí SQL ServerSQL Server (todas las versiones compatibles)yesSQL ServerSQL Server (all supported versions)

Agrega un nuevo usuario a la base de datos actual.Adds a new user to the current database.

Importante

Esta característica está en modo de mantenimiento y es posible que no se incluya en una versión futura de Microsoft SQL Server.This feature is in maintenance mode and may be removed in a future version of Microsoft SQL Server. Evite utilizar esta característica en nuevos trabajos de desarrollo y tenga previsto modificar las aplicaciones que actualmente la utilizan.Avoid using this feature in new development work, and plan to modify applications that currently use this feature.En su lugar, use Create User .Use CREATE USER instead.

Icono de vínculo de tema Convenciones de sintaxis de Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintaxisSyntax

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

ArgumentosArguments

[ @loginame = ] 'login'Es el nombre del inicio de sesión de SQL ServerSQL Server o el inicio de sesión de Windows.[ @loginame = ] 'login' Is the name of the SQL ServerSQL Server login or Windows login. login es de tipo sysnamey no tiene ningún valor predeterminado.login is a sysname, with no default. login debe ser un inicio SQL ServerSQL Server de sesión de o inicio de sesión de Windows existente.login must be an existing SQL ServerSQL Server login or Windows login.

[ @name_in_db = ] 'user'Es el nombre del nuevo usuario de la base de datos.[ @name_in_db = ] 'user' Is the name for the new database user. User es de tipo sysname y suvalor predeterminado es NULL.user is a sysname, with a default of NULL. Si no se especifica User , el nombre del nuevo usuario de la base de datos tiene como valor predeterminado el nombre de Inicio de sesión .If user is not specified, the name of the new database user defaults to the login name. Al especificar User , se asigna al nuevo usuario un nombre en la base de datos diferente del nombre de inicio de sesión de nivel de servidor.Specifying user gives the new user a name in the database different from the server-level login name.

[ @grpname = ] 'role'Es el rol de base de datos del que el nuevo usuario se convierte en miembro.[ @grpname = ] 'role' Is the database role of which the new user becomes a member. role es de tipo sysname y suvalor predeterminado es NULL.role is sysname, with a default of NULL. role debe ser un rol de base de datos válido en la base de datos actual.role must be a valid database role in the current database.

Valores de código de retornoReturn Code Values

0 (correcto) o 1 (error)0 (success) or 1 (failure)

ObservacionesRemarks

sp_adduser también creará un esquema con el nombre del usuario.sp_adduser will also create a schema that has the name of the user.

Después de agregar un usuario, utilice las instrucciones GRANT, DENY y REVOKE para definir los permisos que controlan las actividades del usuario.After a user has been added, use the GRANT, DENY, and REVOKE statements to define the permissions that control the activities performed by the user.

Use Sys. server_principals para mostrar una lista de nombres de inicio de sesión válidos.Use sys.server_principals to display a list of valid login names.

Use sp_helprole para mostrar una lista de los nombres de rol válidos.Use sp_helprole to display a list of the valid role names. Cuando se especifica un rol, el usuario obtiene automáticamente los permisos definidos para ese rol.When you specify a role, the user automatically gains the permissions that are defined for the role. Si no se especifica un rol, el usuario obtiene los permisos concedidos al rol público predeterminado.If a role is not specified, the user gains the permissions granted to the default public role. Para agregar un usuario a un rol, se debe proporcionar un valor para el nombre de usuario .To add a user to a role, a value for the user name must be supplied. (elnombre de usuario puede ser el mismo que el login_id).(username can be the same as login_id.)

El invitado del usuario ya existe en cada base de datos.User guest already exists in every database. Al agregar el usuario invitado , se habilitará este usuario, si estaba deshabilitado anteriormente.Adding user guest will enable this user, if it was previously disabled. De forma predeterminada, el invitado del usuario está deshabilitado en las bases de datos nuevas.By default, user guest is disabled in new databases.

no se puede ejecutar sp_adduser dentro de una transacción definida por el usuario.sp_adduser cannot be executed inside a user-defined transaction.

No se puede Agregar un usuario invitado porque ya existe un usuario invitado en cada base de datos.You cannot add a guest user because a guest user already exists inside every database. Para habilitar el usuario invitado , conceda el permiso Connect de invitado como se muestra a continuación:To enable the guest user, grant guest CONNECT permission as shown:

GRANT CONNECT TO guest;  
GO  

PermisosPermissions

Requiere la propiedad de la base de datos.Requires ownership of the database.

EjemplosExamples

A.A. Agregar un usuario de base de datosAdding a database user

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 ServerSQL Server existente.The following example adds the database user Vidur to the existing Recruiting role in the current database, using the existing SQL ServerSQL Server login Vidur.

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

B.B. Agregar un usuario de base de datos con el mismo Id. de inicio de sesiónAdding a database user with the same login ID

En el siguiente ejemplo se agrega el usuario Arvind a la base de datos para el inicio de sesión Arvind de SQL ServerSQL Server .The following example adds user Arvind to the current database for the SQL ServerSQL Server login Arvind. Este usuario pertenece al rol público predeterminado.This user belongs to the default public role.

EXEC sp_adduser 'Arvind';  

C.C. Agregar un usuario de base de datos con un nombre diferente de su inicio de sesión de nivel de servidorAdding a database user with a different name than its server-level login

En el siguiente ejemplo se agrega el inicio de sesión BjornR de SQL ServerSQL 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.The following example adds SQL ServerSQL Server login BjornR to the current database that has a user name of Bjorn, and adds database user Bjorn to the Production database role.

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

Consulte tambiénSee Also

Procedimientos almacenados de seguridad (Transact-SQL) Security Stored Procedures (Transact-SQL)
Sys. server_principals (Transact-SQL) sys.server_principals (Transact-SQL)
sp_addrole ()de Transact-SQL sp_addrole (Transact-SQL)
CREATE USER (Transact-SQL) CREATE USER (Transact-SQL)
sp_dropuser ()de Transact-SQL sp_dropuser (Transact-SQL)
sp_grantdbaccess ()de Transact-SQL sp_grantdbaccess (Transact-SQL)
sp_grantlogin ()de Transact-SQL sp_grantlogin (Transact-SQL)
Procedimientos almacenados del sistema (Transact-SQL)System Stored Procedures (Transact-SQL)