比如,SCOTT用户下面有DEPT、EMP等4张表,新建一个liuwu 用户,怎么样才给liuwu只写一条语句就能有select这4张表的权限呢?
而不用,在SCOTT用户下: grant select on dept to liuwu;
        ............... emp  ........;我试着用 grant select any table to liuwu; 或者 grant select on user_all_tabales to liuwu; 都不行。
新手,谢谢大家指教。

解决方案 »

  1.   

    你的那两个授权语句是有问题的:
    (1)select any table是系统权限,在ORACLE中,系统权限只能是管理员(拥有DBA角色)或拥有SYSDBA/SYSOPER权限的用户或授权用户自己拥有了该系统权限的管理权(WITH AMDIN OPTION)的操作者才能将该系统权限授权给别的用户使用.
    (2)你将user_all_tables的名称写错了,你写成了(user_all_tabales),当然在对该表的授权会失败了.
      

  2.   

    可能是因为scott用户没有分配权限,用sys或system用户分配试一下。
      

  3.   

    1.scott可能没分配权限。如果有权限的话,用下列语句可以的
    select 'grant select on ' || table_name || ' to liuwu ' from user_tables
      

  4.   

    谢谢大家的指教,作为一个刚接受ORACLE的新手,可能以前MSSQL的很多习惯或者说是观念还是一时半会改不过来,无意中发现了这个论坛,发了个帖子,没想到大家这么热情的为我解答。以后我也要多多来这里,学好了为其他新人解答。同共提高!