现在有个数据库opt,然后里面建了好几个用户,比如da,soc等,现在要先建一个用户dcl,新建的这个用户不能对其他用户下的表进行操作。在建表的时候,表名称前面会加上用户名,比如create table da.user,然后用dcl连接后不能查这表,比如select * from da.user查不到结果,修改就更不行

解决方案 »

  1.   

    经过测验,在新建用户的时候使用如下
    create user dcl cascade;
    grant connect to dcl;
    grant resource to dcl;
    这样da用户只能对da用户下的表进行操作不能访问da,soc
      

  2.   

    这里需要你赋予权限的,你dcl用户想访问da用户下的表,da用户必须给dcl权限。如下:
    GRANT  all on user(这是表名) to dcl.这样dcl用户就可以随便操作这个表了。当然也可以让system用户给dcl赋系统权限权限
      

  3.   

    用system用户登陆,然后赋予你创建用户修改查询其他表的权限
      

  4.   

    connect 角色包括create session的权限,resource角色包括CREATE CLUSTER,CREATE INDEXTYPE,CREATE  OPERATOR,CREATE PROCEDEURE,CREATE SEQUENCE,CREATE TABLE,CREATE TRIGGER,CREATE TYPE权限,其中create table权限让用户可访问操作本用户下所有的表,要想访问其他用户下的表,需要另外赋予权限,如想da用户可以访问dcl用户下的表,需要GRANT SELECT ON DCL TO DA;