第一步:oracle9i中intel表空间里默认用户名是microsoft;
第二步:此时建立一个新用户amd,指向表空间intel,分配了resources权限;
第三步:使用amd用户登录,查看table里没有表,提示表或视图不存在
第四步:输入grant select on intel_facotry to amd;
第五步:使用select * from intel.intel_facotry 可以查看此表
第六步:使用select * from intel_facotry 提示表或视图不存在问题:
为什么新建立了用户,用户所属表空间,但用户却不拥有表空间中的表,amd用户上来如果忘记intel用户名后怎么能够使用查询elect * from intel.intel_facotr呢? 请高手解答~

解决方案 »

  1.   

    1. 表的拥有权,只属于建立表的用户。2. 可以授权进行查询,但必须加上用户前缀,如intel.intel_factory3. 可以建立同义词,例,create or replace synonym intel_factory  for intel.intel_factory;
    就不需要记着那个用户名前缀了。
      

  2.   

    建立了用户,指定表空间,但是这个表空间并不是就是属于该用户了。  多个用户可以共用表空间的
    本来oracle模式就是 一个用户拥有的对象集合,所以忘记了用户名了, 那就select * from all_tables看看自己有权限查看的表  以及用户。
      

  3.   

    用户要隶属于一个表空间,表存在表空间,但不等于这个用户拥有表空间上所有内容。用户就一住户,表空间是一栋楼,表是一件家具。你虽然住在这个楼里,不代表这个楼里所有的家具都是你的。如果忘记密码,可以赋予他select any table 甚至dba的角色。
      

  4.   

    建同义词 授select 权限是正解。如果还有其他权限也可以。