在学校的机器是oracle 9i,在scott帐户下,创建一个包含1982年3月31日以后入职的所有雇员的视图
    CREATE OR REPLACE view v_emp1 
    AS SELECT * FROM emp1 WHERE hiredate > to_date('1982-3-31','rrrr-mm-dd')
  顺利通过。
回家在自己机器上,同样的语句,也是在scott帐号下,报错“SQL> /CREATE OR REPLACE view v_emp1AS SELECT * FROM emp1 WHERE hiredate > to_date('1982-3-31','rrrr-mm-dd')
ORA-01031: 权限不足”
  vemp1表是存在的,而且改帐号下创建表也可以,为什么会有权限不足呢,是不是版本问题?
  而且我的oracle 10g安装后第一次OEM可以登陆,退出以后,就再也登陆不了,是为什么呢??

解决方案 »

  1.   

    通过自己查找,终于搞明白了。原来是需要DBA(数据库管理员)权限
    解决方法:以用户system登录,授权给scott: grant dba to scott;
    再用scott登录,就可以创建视图了。不过我不明白的是:难道在oracle 9i中一般用户自动拥有dba权限,还是9i中不需要dba权限就可以创建视图??
      

  2.   

    在ORACLE10G中,创建视图不需要DBA权限(当然,有DBA权限是肯定可以创建视图的),而只需要创建视图的权限(CREATE VIEW),当然,该用户也要拥有对创建的视图的基表的SELECT权限.否则,ORACLE10G会提示权限不足.
      

  3.   

    GRANT SELECT ON ** TO USER
      

  4.   

    谢谢各位大虾,我的确需要学的东西太多,学oracle才5天