sp_addrolemember (Transact-SQL)

Agrega un usuario de base de datos, una función de base de datos, un inicio de sesión de Windows o un grupo de Windows a una función de base de datos en la base de datos actual.

Icono de vínculo a temasConvenciones de sintaxis de Transact-SQL

Sintaxis

sp_addrolemember [ @rolename = ] 'role',
    [ @membername = ] 'security_account'

Argumentos

  • [ @rolename = ] 'role'
    Es el nombre de la función de base de datos en la base de datos actual. role es de tipo sysname y no tiene valor predeterminado.
  • [ @membername = ] 'security_account'
    Es la cuenta de seguridad que se va a agregar a la función. security_account es de tipo sysname y no tiene valor predeterminado. security_account puede ser un usuario de base de datos, una función de base de datos, un inicio de sesión de Windows o un grupo de Windows.

Notas

Un miembro agregado a una función mediante sp_addrolemember hereda los permisos de la función. Si el nuevo miembro es una entidad de seguridad en el nivel de Windows sin un usuario de base de datos correspondiente, se creará un usuario de base de datos.

Una función no puede incluirse como un miembro. Este tipo de definiciones "circulares" no es válido, incluso cuando la pertenencia sólo afecte indirectamente a uno o varios miembros intermedios.

sp_addrolemember no puede agregar una función fija de base de datos, una función fija de servidor o dbo a una función. Con una versión anterior del Service Pack 1 de SQL Server, no se puede ejecutar sp_addrolemember en una transacción definida por el usuario.

Utilice sp_addrolemember únicamente para agregar un miembro a una función de base de datos. Para agregar un miembro a una función de servidor, use sp_addsrvrolemember (Transact-SQL).

No agregue las funciones flexibles como miembros de las funciones fijas. Esto podría habilitar un aumento de privilegios imprevisto.

Permisos

Para agregar los miembros a las funciones flexibles de base de datos, se requiere una de las posibilidades siguientes:

  • La pertenencia a la función fija de base de datos db_owner.
  • La pertenencia a la función fija de base de datos db_securityadmin.
  • La pertenencia a la función propietaria de la función.
  • El permiso ALTER en la función.

Para agregar miembros a las funciones fijas de base de datos debe pertenecer a la función fija de base de datos db_owner.

Valores de código de retorno

0 (correcto) o 1 (error)

Ejemplos

A. Agregar un inicio de sesión de Windows

En el ejemplo siguiente se agrega el inicio de sesión Windows Contoso\Mary5

a la base de datos AdventureWorks como el usuario Mary5. A continuación, el usuario Mary5 se agrega a la función Production.

[!NOTA] Puesto que Contoso\Mary5 se conoce como el usuario de base de datos Mary5 en la base de datos AdventureWorks, el nombre de usuario Mary5 se debe especificar con sp_addrolemember.

USE AdventureWorks
GO
EXEC sp_grantdbaccess 'Contoso\Mary5', 'Mary5'
GO
EXEC sp_addrolemember 'Production', 'Mary5'

B. Agregar un usuario de base de datos

En el siguiente ejemplo se agrega el usuario de base de datos Mary5 a la función de base de datos Production en la base de datos actual.

EXEC sp_addrolemember 'Production', 'Mary5'

Vea también

Referencia

Procedimientos almacenados de seguridad (Transact-SQL)
sp_addsrvrolemember (Transact-SQL)
sp_droprolemember (Transact-SQL)
sp_grantdbaccess (Transact-SQL)
Procedimientos almacenados del sistema (Transact-SQL)

Ayuda e información

Obtener ayuda sobre SQL Server 2005