This script when executed give the list of permission for a given role and the result set consists of Database Name, Database Principal Name, Who granted the access, what permission, For which database object, schema of objects and type of the object.

Change the name of the role in the where contition and if this query is run without the filter will get all the available data.

SQL
Edit|Remove
SELECT DB_NAME() AS DatabaseName 
      ,DatabasePrincipals.name AS PrincipalName 
      ,DatabasePrincipals.type_desc AS PrincipalType 
      ,DatabasePrincipals2.name AS GrantedBy 
      ,DatabasePermissions.permission_name AS Permission 
      ,DatabasePermissions.state_desc AS StateDescription 
      ,SCHEMA_NAME(SO.schema_idAS SchemaName 
      ,SO.Name AS ObjectName 
      ,SO.type_desc AS ObjectType 
  FROM sys.database_permissions DatabasePermissions LEFT JOIN sys.objects SO 
    ON DatabasePermissions.major_id = so.object_id LEFT JOIN sys.database_principals DatabasePrincipals 
    ON DatabasePermissions.grantee_principal_id = DatabasePrincipals.principal_id LEFT JOIN sys.database_principals DatabasePrincipals2 
    ON DatabasePermissions.grantor_principal_id = DatabasePrincipals2.principal_id 
WHERE DatabasePrincipals.name = 'Test' -- Change the Role Name