Permit user roles to see node (not via view) based on a taxonomy
You can do your own implementation of hook_node_access in a custom module. It passes you the node and the user object, so you can check for certain criteria, and limit access appropriately.

http://api.drupal.org/api/drupal/modules!node!node.api.php/function/hook_node_access/7