all_tab_columns视图是不是能查询整个数据库所有的表,因为所有用户都能查询all_tab_columns ,那样是不是代表任何用户都能查看数据库所有的表的列信息?

解决方案 »

  1.   

    只要有权限查看all_tab_columns就能看到所有表信息,但是不是所有用户都能查看这个视图的.
    一般只能看到User_tab_columns
      

  2.   

    为什么连scott默认都有查看这个视图的权限啊
      

  3.   

    你看下你的scott有些什么权限,一般新建用户的时候是不会有的
      

  4.   

    这是Oracle官方的解释:
    ALL_TAB_COLUMNS describes the columns of the tables, views, and clusters accessible to the current user. 从解释中可以看出ALL_TAB_COLUMNS中只列出了当前用户可以访问的表、视图和簇中的列。
      

  5.   

    你说对了,  user_这个视图是指这个user自己拥有的对象,all_这个视图不仅包含user自己的还有这个user有权限访问的对象信息。
      

  6.   

    SELECT * FROM USER_TABLES;
    SELECT * FROM ALL_TABLES;grant select on [table_name] to [user_name];SELECT * FROM USER_TABLES;
    SELECT * FROM ALL_TABLES;你试试就知道了!