No hay una forma directa de hacer esto, tendrás que apoyarte en roles y sinónimos para crear un entorno accesible a los usuarios que elijas.
En primer lugar, rol_cuentas no debería tener asignado el rol de dba, lo más básico para conectarse a la base es connect y create session, a partir de ahí, puedes utilizar las sentencia:
Código:
grant all on un_objeto to rol_cuentas;
Donde un_objeto puede ser una tabla, procedimiento, función, etc. Cuando termines de configurar el rol, debes asignarlo a cada usuario en particular:
Código:
grant rol_cuentas to usuario;
Finalmente, supongamos que el esquema que contiene todos los objetos se llama schema1, para que todos los usuarios puedan hacer referencia a los objetos directamente, puedes utilizar sinónimos públicos, por ejemplo:
Código:
create public synonym un_objeto for schema1.un_objeto;
No comentas mucho para que necesitas esto, pero recuerdo un modelo viejo de delegar la seguridad de las aplicaciones en usuarios de la base de datos, solo quería agregar que esto se lo considera deprecado ya que no es el más óptimo.
Saludos