you must be typing wrong table name while granting privilege to role. check the table name carefully.
I have simulated your case in my test box and no issues for me.
SQL> create user user1 identified by user1;
User created.
SQL> grant connect,resource to user1;
Grant succeeded.
SQL> conn user1/user1
Connected.
SQL> create table tab1 (name varchar2(30));
Table created.
SQL> conn /as sysdba
Connected.
SQL> create role role1;
Role created.
SQL> grant select on user1.tab1 to role1;
Grant succeeded.
SQL> create user user2 identified by user2;
User created.
SQL> grant connect,role1 to user2;
Grant succeeded.
SQL> conn user2/user2
Connected.
SQL> select count(*) from user1.tab1;
COUNT(*)
----------
0
SQL> conn /as sysdba
Connected.
SQL> alter user user2 default role connect,role1;
User altered.
SQL> conn user2/user2
Connected.
SQL> select count(*) from user1.tab1;
COUNT(*)
----------
0
SQL>
Thanks,
Vijay Tummala
Try hard to get what you like OR you will be forced to like what you get.