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 temasConvenciones 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 o un inicio de sesión de Windows existente.

  • [ @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 en el nivel de servidor.

  • [ @grpname = ] 'role'
    Es el grupo o función del que el nuevo usuario forma parte automáticamente. role es de tipo sysname y su valor predeterminado es NULL. role debe ser una función de base de datos válida en la base de datos actual.

Valores de código de retorno

0 (correcto) o 1 (error)

Notas

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 función válidos, utilice sp_helprole. Cuando se especifica una función, el usuario obtiene automáticamente los permisos definidos para esa función. Si no se especifica una función, el usuario obtiene los permisos concedidos a la función predeterminada public. Para agregar un usuario a una función, 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 a la función 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 a la función public predeterminada.

EXEC sp_adduser 'Arvind'

C. Agregar un usuario de base de datos con un nombre diferente de su inicio de sesión en el 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 a la función de base de datos Production.

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