需求:
新建的用户userB,要授权给他访问用户userA的所有表
1)建议使用
SQL> conn userA/pwd;
SQL> select 'GRANT SELECT ON' || table_name || 'to userB;' from user_tables
得到的结果如下
grant select on emp to userB;
grant select on dept to userB;
grant select on bonus to userB;
grant select on loc to userB;
再把上面得到的结果逐一执行一遍:
SQL> grant select on emp to userB;
SQL> grant select on dept to userB;
SQL> grant select on bonus to userB;
SQL> grant select on loc to userB;
2)不建议
SQL> conn / as sysdba;
SQL> grant select any table on userB
第2)种方法的缺点是授予的权限过大,userB不仅可以访问userA下的所有表,也可以访问其他用户包括sys,system下的所有表。