ORACLE 创建视图 用户权限不足 connect权限的变化
oracle 9i 到10g connect角色权限有变化
在9i版本中
SQL> select * from role_sys_privs where role='CONNECT';
ROLE PRIVILEGE ADM
------------------------------ ---------------------------------------- ---
CONNECT CREATE VIEW NO
CONNECT CREATE TABLE NO
CONNECT ALTER SESSION NO
CONNECT CREATE CLUSTER NO
CONNECT CREATE SESSION NO
CONNECT CREATE SYNONYM NO
CONNECT CREATE SEQUENCE NO
CONNECT CREATE DATABASE LINK NO
8 rows selected.
在10g版本中
SQL> select * from role_sys_privs where role='CONNECT';
ROLE PRIVILEGE ADM
------------------------------ ---------------------------------------- ---
CONNECT CREATE SESSION NO
可见,在10G版本中,角色CONNECT仅剩下CREATE SESSION 权限了,这也是ORACLE处于安全方面的考虑。
由于在10g中 connect权限没了创建视图,所以是无法创建
顺便查下 RESOURCE 角色权限
SQL> select * from role_sys_privs where role='RESOURCE';
ROLE PRIVILEGE ADM
------------------------------ ---------------------------------------- ---
RESOURCE CREATE SEQUENCE NO
RESOURCE CREATE TRIGGER NO
RESOURCE CREATE CLUSTER NO
RESOURCE CREATE PROCEDURE NO
RESOURCE CREATE TYPE NO
RESOURCE CREATE OPERATOR NO
RESOURCE CREATE TABLE NO
RESOURCE CREATE INDEXTYPE NO
已选择8行。
问题:使用scott登录Oracle以后,创建视图,提示“权限不够”,怎么解决?
回答:
这是因为scott这个帐户目前没有创建视图的权限。解决方法为:
首先使用system帐户进行登录,其中“tigertiger”为安装Oracle时所指定的密码(可修改):
sqlplus system/tiger
然后执行:
grant create view to scott
提示:授权成功。
执行:
exit
退出当前system帐户。
再使用sqlplus登录就可以创建视图了,如:
sqlplus scott/tiger
下面创建一个最简单视图:
create or replace view v1
as
select * from t1;