Oracle 中system sys,sysoper sysdba 的区别

阅读更多
--=====================================
-- system sys,sysoper sysdba 的区别
--=====================================
cuug 每周五晚8点都有免费的网络课程,大家可及时关注cuug官网详细了解。
Oracle 中sys,system帐户以及登陆时的normal,sysoper,sysdba是经常容易混淆的几个概念,下面详细讲述了这几个的区别。
一、sys,system帐户
当Oracle 数据库安装完毕后,系统会自动创建两个帐户如下:
sys:缺省密码为CHANGE_ON_INSTALL ,且被授予DBA角色
system:缺省密码为MANAGER,且被授予DBA角色

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

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

--如下使用system连接rman时提示权限不够,而sys帐户则可以正常连接
RMAN> connect target system/RedHat@orcl--使用system帐户连接失败

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)

注:sys与system两个帐户都属于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权限
除了能执行上述所有命令之外,还能创建数据库,删除数据库,数据库日志归档,执行不完全恢复,
以及创建其它的sysoper和sysdba用户

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

PRIVILEGE NAMEPROPERTY
---------- ---------------------------------------- ----------
-3 ALTER SYSTEM0
-4 AUDIT SYSTEM0
-83 SYSDBA0
-84 SYSOPER0

你可能感兴趣的:(oracle,cuug,ocp,COM)