How to filter nodes by role (Content Access for nodes activated)? I have activated content access per node, so that I can control the access of the node directly on the node.
Now I want to create a view, with an exposed filter. The filter should contain the roles which are activated directly on the nodes.
So that I can find nodes which have maybe role A and B activated but not C.

Matroschker
Data related to access permissions per node settings are stored in content_access table created by content access module along with acl module tables like ace and acl_node

It is stored in serialized format.. For example



Content access doesn't have any views integration to list content filtered by roles based on settings...

I am afraid you need to read serialized array and then filter nodes using code...

To read values per node see per node settings page code below implemented in content access module..

/**
 * Per node settings page.
 */
function content_access_page($form, &amp;$form_state, $node) {
  drupal_set_title(t('Access control for @title', array('@title' =&gt; $node-&gt;title)));

  foreach (_content_access_get_operations() as $op =&gt; $label) {
    $defaults[$op] = content_access_per_node_setting($op, $node);
  }

  // Get roles form
  content_access_role_based_form($form, $defaults, $node-&gt;type);

  // Add an after_build handler that disables checkboxes, which are enforced by permissions.
  $form['per_role']['#after_build'] = array('content_access_force_permissions');

  // ACL form
  if (module_exists('acl')) {
    // This is disabled when there is no node passed.
    $form['acl'] = array(
      '#type' =&gt; 'fieldset',
      '#title' =&gt; t('User access control lists'),
      '#description' =&gt; t('These settings allow you to grant access to specific users.'),
      '#collapsible' =&gt; TRUE,
      '#tree' =&gt; TRUE,
    );

    foreach (array('view', 'update', 'delete') as $op) {
      $acl_id = content_access_get_acl_id($node, $op);
      acl_node_add_acl($node-&gt;nid, $acl_id, (int) ($op == 'view'), (int) ($op == 'update'), (int) ($op == 'delete'), content_access_get_settings('priority', $node-&gt;type));

      $form['acl'][$op] = acl_edit_form($form_state, $acl_id, t('Grant !op access', array('!op' =&gt; $op)));
      $form['acl'][$op]['#collapsed'] = !isset($_POST['acl_' . $acl_id]) &amp;&amp; !unserialize($form['acl'][$op]['user_list']['#default_value']);
    }
  }

  $form_state['node'] = $node;

  $form['reset'] = array(
    '#type' =&gt; 'submit',
    '#value' =&gt; t('Reset to defaults'),
    '#weight' =&gt; 10,
    '#submit' =&gt; array('content_access_page_reset'),
    '#access' =&gt; count(content_access_get_per_node_settings($node)) &gt; 0,
  );
  $form['submit'] = array(
    '#type' =&gt; 'submit',
    '#value' =&gt; t('Submit'),
    '#weight' =&gt; 10,
  );

  // @todo not true anymore?
  // http://drupal.org/update/modules/6/7#hook_node_access_records
  if (!$node-&gt;status) {
    drupal_set_message(t("Warning: Your content is not published, so this settings are not taken into account as long as the content remains unpublished."), 'error');
  }

  return $form;
}