Vince,
Here are the scripts for the role GEOPH_SURF and a user ABRAMOVA_MI. 
------------------------
DROP ROLE GEOPH_SURF;
CREATE ROLE GEOPH_SURF NOT IDENTIFIED;
GRANT DELETE, INSERT, SELECT, UPDATE ON GEOPHYSICS.MINELEASE_T TO GEOPH_SURF;
GRANT DELETE, INSERT, SELECT, UPDATE ON GEOPHYSICS.S165_IDX$ TO GEOPH_SURF;
GRANT GEOPH_SURF TO SYS WITH ADMIN OPTION;
GRANT GEOPH_SURF TO ABRAMOVA_MI;
----------------------------------
DROP USER ABRAMOVA_MI CASCADE;
CREATE USER ABRAMOVA_MI
  IDENTIFIED BY VALUES '*'
  DEFAULT TABLESPACE USERS
  TEMPORARY TABLESPACE TEMP
  PROFILE DEFAULT
  ACCOUNT UNLOCK;
  -- 3 Roles for ABRAMOVA_MI 
  GRANT CONNECT TO ABRAMOVA_MI;
  GRANT GEOPH_SURF TO ABRAMOVA_MI;
  GRANT RESOURCE TO ABRAMOVA_MI;
  ALTER USER ABRAMOVA_MI DEFAULT ROLE CONNECT, RESOURCE;
  -- 1 System Privilege for ABRAMOVA_MI 
  GRANT UNLIMITED TABLESPACE TO ABRAMOVA_MI;
--------------------------------------
The privileges for a feature dataset with a single feature class in a Desktop are:
[ATTACH=CONFIG]28887[/ATTACH]
In this case the user does not see the feature class, unless I give explicit rights:
[ATTACH=CONFIG]28888[/ATTACH]
Ivan