日期:2014-05-16  浏览次数:20527 次

sysdba sysoper normal区别

??? 今天用weblogic应用服务器做项目连接oracle数据库时一直报table or view not exists ,但是其他配置正确而且我在数据库中已经建了相应的表!十分费解……

??? 然一哥们说是创建表所用的身份不对,因为之前的是connect as sysdba 后来改为connect as normal 重新登录。结果发现在用sysdba身份登录时建了的表student看不到了,故而猜测是不是oracle自动将sysdba建立的表给保护起来了。然后在normal的身份下又建立了student这张表。运行项目……一切ok了!!

?? 百思不得其解时,有用sysdba登录发现在normal下建立的表变成了scott.student(我是用scott名称登录的)。

?

然后再网上找了一下这些角色的区别:

oracle 在创建database的时候都会有两个默认用户帐号:
system和sys默认的口令为:manager和change_on_install 同时也授予两个用户DBA角色的权限.

【system】用户只能用normal身份登陆em。
【sys】用户具有“SYSDBA”或者“SYSOPER”权限,登陆em也只能用这两个身份,不能用normal。

首先我应该分清权限和角色,大致讲讲.
权限:oracle提供两种权限(系统权限sys privileges和对象权限object privileges)
角色:是具有名称的一组系统权限和对象权限的集合.

?

那么我们看看sysdba,sysoper分别的管理权限.

sysdba拥有最高的系统权限,sysdba登陆后是 sys.
sysoper主要用来启动、关闭数据库,sysoper 登陆后用户是 public.
sysdba的权限:
●启动和关闭操作
●更改数据库状态为打开/装载/备份,更改字符集
●创建数据库
●创建服务器参数文件spfile
●日志归档和恢复
●包含了“会话权限”权限

sysoper权限:
●启动和关闭操作
●更改数据库状态为打开/装载/备份
●创建服务器参数文件SPFILE
●日志归档和恢复
●包含了“会话权限”权限


?

创建用户 caods语句
create user caods identified by caods;
grant connect to caods;
grant create any procedure to caods;
grant create any trigger to caods;
grant create any view to caods;
alter user caods quota 0 on SYSTEM;
alter user caods default tablespace TS_DAC;
alter user caods quota unlimited on TS_DAC;
alter user caods temporary tablespace temp;

?

备注:开发web项目时配置的数据库文件中的用户默认的应该是normal?? 但是我如果想在开发中用sysdba身份登录怎么办呢?