nodeaccess prevent some roles to view views contents even if they allowed to access
I found this module node_view_permissions, it did what I want in my use case, so I removed nodeaccess.


  Node view permissions module enables permissions "View own content"
  and "View any content" for each content type on permissions page as it
  was on Drupal 6. It's as simple as that.
  
  It's implemented in a non-conflict way, so you can use it with any
  other permissions related module.