user all dba哪个包含的类容最多,他们之间有什么关系?
达人赐教,谢谢!

解决方案 »

  1.   

    Oracle数据库里常用的数据字典视图,一般分为这三种。
    (简单来说user_自己的,all_可以被自己看到的,dba_全数据库所有的)其中,user_打头的数据字典视图指的是  当前用户下  的内容。
    例如:user_users查询结果就只有当前用户自己的信息,user_tables只有当前用户下的表的信息。all_打头的数据字典视图指的是,所有可以被当前用户看到的 内容。
    例如all_users可以查看到所有用户的基本信息。
    而all_tables可以查看到所有其他用户对 你目前使用的用户 赋过权的表,以及你自己的表 的相关信息。最后dba_打头的视图,通常包含数据库中所有的信息。例如dba_users可以看到全部用户,而dba_tables可以看到全部表,无所谓别人给不给授权。
    当然,有一些内容dba_视图也不包含,例如dba_db_links不如user_db_links详细。但这类情况很少。 
      

  2.   

    user是当前用户的所有的对象,在他的列中是没有owner这个列的
    all 代表的当前用户可以访问的所有的对象,包括自身创建的对象,里面还有了owner列。
    比如另外一个用户grant 给了当前的用户,使用all的视图就可以查到
    dba 则是一个整个数据库的全局视图,他包含了所有用户的对象。当然他也包含了owner列
      

  3.   

    oracle官方文档的说明
    1.DBA_ALL_TABLES describes all object tables and relational tables in the database. Its columns are the same as those in ALL_ALL_TABLES.2.ALL_ALL_TABLES describes the object tables and relational tables accessible to the current user.3.USER_ALL_TABLES describes the object tables and relational tables owned by the current user