Different permissions after node publishing
I resolve this with small custom module. I checking user role as well because I need to apply this only on one role.

There is my code:

/**
 * Implements hook_node_access().
 */
function MODULE_node_access($node, $op, $account = NULL) {
    global $user;
  if (
    // The $node argument can be either a $node object or a machine name of
    // node's content type. It is called multiple times during a page load
    // so it is enough if you perform the check once you get the object.
      is_object($node) &amp;&amp; array_key_exists(6, $user-&gt;roles) &amp;&amp;
      // Operation on which you want to act: "create", "delete", "update", "view".
      ($op == 'update' || $op == 'delete')
  ) {
    // Check if the node is published.
    if ($node-&gt;status == 1) {
      return NODE_ACCESS_DENY;
    }
  }
}


My role's ID is 6, so I used this part array_key_exists(6, $user-&gt;roles) because of that.