Inicio > Sql Server 2005 - 2008, Transact-SQL > Roles de Aplicación o Función de Aplicación

Roles de Aplicación o Función de Aplicación


Los Roles son agrupaciones de usuarios en SQL Server a donde se puedes asignar , negar permisos .
Esto te permite organizar usuarios mas facilmente simplemente asignandoles un rol o moviendolos de rol a rol sin necesidad de dar permisos individuales.

SQL server tiene un grupo de roles que son creados en su instalacion que corresponden a funciones comunes de administradores.

— Creamos el Usuario ‘Juan’ con el password ‘Clave’:

Sp_Addlogin ‘Ricardo’, ‘Clave’
GO
— Le damos acceso a la base de datos AdventureWorks:
USE AdventureWorks
GO
sp_grantdbaccess ‘Ricardo’
GO
— Y realizamos una prueba en el analizador de consultas con los siguientes datos:
Login name: Ricardo
Password: Clave

— Probamos con la siguiente consulta
USE AdventureWorks
GO
SELECT * FROM Production.Location

— Quitamos el permiso de escritura
sp_addrolemember ‘db_denydatawriter’, ‘Ricardo’
GO
— Quitamos el permiso de lectura
sp_addrolemember ‘db_denydatareader’, ‘Ricardo’
GO

— Creamos un Rol de nombre ‘MiRol’ y de password ‘MiPassword’
USE AdventureWorks
GO
EXEC sp_addapprole ‘MiRol’, ‘MiPassword’
GO

— Si volvemos a realizar las consultas, con el usuario ‘Ricardo’
— continúa sin permisos de lectura y escritura.
— Usemos entonces el rol de aplicación para que ‘Ricardo’
— tenga acceso a la base de datos AdventureWorks mientras este activado el rol.
— Para ello ejecutaremos el procedimiento almacenado sp_setapprole

USE AdventureWorks
GO
EXEC sp_setapprole ‘MiRol’, {Encrypt N ‘MiPassword’}, ‘odbc’

— Se devolvieron los datos como si ‘Ricardo’ tuviese acceso a los datos.
— El usuario ‘Ricardo’ heredó los permisos asignados al rol de aplicación que creamos anteriormente

USE AdventureWorks
GO
SELECT * FROM Production.Location

— Algunas caracteristicas :

— ·   No existen roles de aplicación pre-definidos.
— ·   No contiene miembros, es un conjunto de permisos que se activan en el momento de iniciar la sesión.
— ·   Existe solo para la aplicación para la cual el rol se activa, y solo hasta que ésta se cierra.
— ·   Después de activar un rol de aplicación en una base de datos, si la aplicación quiere ejecutar una transacción a través de base de datos, las otras bases de datos tienen que tener habilitado una cuenta de usuario invitado.

  1. LuisMedina
    17 octubre 2010 a las 11:08 pm

    muy buena

    funciona perfecto para la misma base de datos, pero cuando quiero hacer un select a otra base de datos sale el mensaje que el usuario no es valido en la base de datos

    saludos

  2. 5 noviembre 2011 a las 4:08 pm

    No sirve en SQL 2008

    • 15 diciembre 2011 a las 12:09 pm

      Porque dices que no sirve en SQL 2008 ???

  1. No trackbacks yet.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: