数据库orcl
创建用户jads,并且分配sysdba权限
用户jads以sysdba权限登录orcl,并且创建表ou_users和插入相关数据问题来了:
当用户jads以sysdba权限访问ou_users表时,比方说select * from ou_users,数据是可以访问的
但是用户jads以normal权限访问时,数据就不可以访问了,报错 表或试图不存在怎样修改权限使用户jads在normal情况下也能访问到数据呢ps:因为用户jads以sysdba权限登录数据库时,创建的表和插入的数据量比较大,所以再以normal权限重新创建表和插入数据比较麻烦,所以寻求其他解决方案。
小弟对oracle不是很熟悉

解决方案 »

  1.   

    当用户jads以sysdba权限访问ou_users表时,比方说select * from ou_users,数据是可以访问的
    但是用户jads以normal权限访问时,数据就不可以访问了,报错 表或试图不存在
    你是几个用户 
    贴出你的具体操作
      

  2.   

    我是LZ
    jads是我创建的用户,还有些oracle自带的用户这个跟上述问题有关联么?
      

  3.   

    SQL> connect sys/oracle@orcl as sysdba
    Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 
    Connected as SYS--创建用户
    SQL> create user jads identified by jads;
     
    User created
     
    --授予权限
    SQL> grant connect,resource,dba,sysdba to jads;
     
    Grant succeeded
     
    --以sysdba方式登录
    SQL> connect jads/jads@orcl as sysdba
    Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 
    Connected as SYS
     
    --虽然以jads用户,但以sysdba角色登录,则用户实际上是SYS
    SQL> show user
    User is "SYS"
     
    SQL> create table ou_users(id number,name varchar2(30));
     
    Table created
     
    --所以创建的表的OWNER是SYS
    SQL> select t.table_name,t.owner,t.tablespace_name from dba_tables t where t.table_name='OU_USERS';
     
    TABLE_NAME                     OWNER                          TABLESPACE_NAME
    ------------------------------ ------------------------------ ------------------------------
    OU_USERS                       SYS                            SYSTEM
     SQL> connect jads/jads@orcl as normal
    Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 
    Connected as jads
     
    --表的OWNER为SYS,而非jads所以jads不能直接访问
    SQL> select * from ou_uses;
     
    select * from ou_uses
     
    ORA-00942: 表或视图不存在--如果有dba权限,可以<用户名.表名>方式访问
    SQL> select * from sys.ou_users;
     
            ID NAME
    ---------- ------------------------------
     
    SQL> 
      

  4.   

    如果一定要以sysdba登录并创建表,可以这样:
    jads使用as sysdba登录,然后在jads下创建表,即创建表时加上jads.
    create table jads.ou_users(id number,name varchar2(30));这样jads使用as normal登录后,可以直接访问表,没有问题的
    select * from ou_users;
      

  5.   

    原来oracle的sysdba权限是这么设置的
    又涨见识了