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.
Convenciones 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 datosMary5
en la base de datos AdventureWorks, el nombre de usuarioMary5
se debe especificar consp_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)