Oracle 中system sys,sysoper sysdba 的区别

2014-11-24 18:13:39 · 作者: · 浏览: 0

--=====================================


-- system syssysoper sysdba 的区别


--=====================================



一、sys,system帐户


Oracle 数据库安装完毕后,系统会自动创建两个帐户如下:


sys:缺省密码为CHANGE_ON_INSTALL ,且被授予DBA角色


system:缺省密码为MANAGER,且被授予DBA角色



下面具体描述syssystem帐户


sys :这个帐户相当于SQL server中的sa帐户,或者说Xp系统中的administrator,Linux系统中的root帐户,是个超级帐户,拥有的权限最大,可以完成数据库的所有管理任务。Oracle中全部的基表,视图等都是以sys架构存储在数据字典中,类似于SQL servermaster数据库,存储了所有最原始最基本最关键的系统结构,数据等。因此所有以sys架构的对象不允许用户或数据库管理员修改,也不建议创建sys架构的对象。



system :该帐户除了不能完成备份恢复,以及升级之外的数据库所有管理任务,通常用来创建一些用于查看管理信息的表或视图,以及一些被不同Oracle数据库选项和工具使用的内部表或内部视图。同样也不建议使用system架构来创建一些与管理无关的表或视图。



--如下使用system连接rman时提示权限不够,而sys帐户则可以正常连接



RMAN-00571: ===========================================================


RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============


RMAN-00571: ===========================================================


ORA-01031: insufficient privileges



RMAN> connect target sys/redhat@orcl--使用sys帐户连接成功



connected to target database: ORCL (DBID=1261365217)



:syssystem两个帐户都属于dba角色,但是两者拥有不同的权限,sys拥有更多的权限。



system@ORCL> grant sysoper to usr1;--对于特殊权限system不能够授予用户


grant sysoper to usr1


*


ERROR at line 1:


ORA-01031: insufficient privileges



system@ORCL> conn / as sysdba


Connected.


sys@ORCL> grant sysoper to usr1;--sys用户则可以完成上面的授权操作



Grant succeeded.



二、Sysoper Sysdba



sysoper权限能够执行下列操作


startup


shutdown


create spfile


alter database [mount | open | close | dismount]


alter [database | tablespace] [begin | end] backup


alter database recover


restricted session



sysdba权限


除了能执行上述所有命令之外,还能创建数据库,删除数据库,数据库日志归档,执行不完全恢复,


以及创建其它的sysopersysdba用户



SQL> select * from system_privilege_map where name like '%SYS%';



PRIVILEGE NAMEPROPERTY


---------- ---------------------------------------- ----------


-3 ALTER SYSTEM0


-4 AUDIT SYSTEM0


-83 SYSDBA0


-84 SYSOPER0