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

-- system sys,sysoper sysdba 的区别

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

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 NAME                                       PROPERTY

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

-3 ALTER SYSTEM                                      0

-4 AUDIT SYSTEM                                      0

-83 SYSDBA                                            0

-84 SYSOPER                                           0

下面的链接是两者不同的权限说明

http://download.oracle.com/docs/cd/B19306_01/server.102/b14231/dba.htm#sthref137

The manner in which you are authorized to use these privileges depends upon the method of

authentication that you use.When you connect with SYSDBA or SYSOPER privileges, you connect with

a default schema, not with the schema that is generally associated with your username. For

SYSDBA this schema is SYS; for SYSOPER the schema is PUBLIC.

--两者的schema不同

SQL> show user

USER is "SYS"

SQL> conn / as sysoper

Connected.

SQL> show user

USER is "PUBLIC"

在使用OEM登陆时,还有一种登陆时角色的选择则是normal,这个是对所有普通用户而言,登陆后其schema是自身

--查看密码文件视图,可以得到哪些用户为sysdba,哪些用户为sysoper

SQL> select * from v$pwfile_users;

USERNAME                       SYSDB SYSOP

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

SYS                            TRUE  TRUE

SCOTT                          TRUE  FALSE

USR1                           FALSE TRUE

--下面演示了使用不同的角色来登陆

SQL> conn scott/tiger@orcl as sysdba

Connected.

SQL> show user;     --尽管登陆的帐户是scott,但执行show user显示的是sys

USER is "SYS"

SQL> conn scott/tiger@orcl as sysoper  /*scott的sysop列为false*/

ERROR:

ORA-01031: insufficient privileges

Warning: You are no longer connected to ORACLE.

SQL> conn usr1/usr1@orcl as sysdba

ERROR:

ORA-01031: insufficient privileges

SQL> conn usr1/usr1 as sysoper

Connected.

SQL> show user;    --登陆的帐户是usr1,执行show user显示的是public

USER is "PUBLIC"

sys@ORCL> select * from dba_roles where role like 'SYS%'; --不存在这两个角色

no rows selected

--下面演示sysdba与sysoper都可以用来启动数据库

idle> conn scott/tiger as sysdba

Connected to an idle instance.

idle> startup

idle> conn usr1/usr1 as sysoper

Connected to an idle instance.

idle> startup

总结:

sysoper与sysdba不是角色,DBA角色也不包含这两种权限。

这是两种用于完成数据库管理任务的特殊权限,如数据库创建,实例启动、关闭等

这两个权限独立于数据库之外,位于数据库密码文件之中,属于密码认证范畴

通常在启动数据库时使用的场合较多,当然也可以以这两种方式连接数据库

连接数据库时使用sysdba则show user查看时为sys,使用sysoper则show user查看时为public

system sys,sysoper sysdba 的区别的更多相关文章

  1. Oracle sys和system用户、sysdba 和sysoper系统权限、sysdba和dba角色的区别

    sys和system用户区别 1)最重要的区别,存储的数据的重要性不同 sys所有oracle的数据字典的基表和视图都存放在sys用户中,这些基表和视图对于oracle的运行是至关重要的,由数据库自己 ...

  2. 【转】Oracle Sys和system用户、sysdba 和sysoper系统权

    一:最重要的区别,存储的数据的重要性不同 [sys]所有oracle的数据字典的基表和视图都存放在sys用户中,这些基表和视图对于oracle的运行是至关重要的,由数据库自己维护,任何用户都不能手动更 ...

  3. SYS与SYSTEM、DBA与SYSDBA的区别

    SYS与SYSTEM: 1. sys 的角色是sysdba system 的角色是sysoper 2. sys 具有create database的权限 system没有该权限 3. sys可以建数据 ...

  4. [转]DBA,SYSDBA,SYSOPER三者的区别

    原文地址:http://www.oracleonlinux.cn/2010/02/dba_sysdba_sysoper/ 什么是DBA?什么是SYSDBA,什么又是SYSOPER?三者究竟有何联系呢? ...

  5. oracle中scott/tiger、sys、SYSDBA、system都是什么用

    scott 是个演示用户,是让你学习ORACLE用的 SYSDBA 不是用户,可以认为是个权限,超级权限详细点说吧            超级用户分两种 SYSDBA和SYSOPTSYSOPT 后面3 ...

  6. oracle给system用户增加sysdba和sysoper 角色

    第一步:先用sys用户登录到数据库 第二步:打开一个sql窗口,输入grant sysoper to system;  点击执行 第三步:等待执行完成之后,再执行grant sysdba to sys ...

  7. Oracle开发:dba和sysdba的区别

    oracle dba和sysdba的区别如下: 1.dba是一种role对应的是对Oracle实例里对象的操作权限的集合,而sysdba是概念上的role是一种登录认证时的身份标识而已.而且,dba是 ...

  8. 如何找回Oracle中system,sys用户的密码[转]

    Oracle中如果不知道system,sys用户的密码后可用如下方法找回: 首先以一个普通用户等入数据库: 在SQL*Plus中执行如下命令: SQL>connect/as sysdba (也可 ...

  9. 转 : 如何用sys as sysdba权限连接数据库进行EXP/IMP

    使用sys as sysdba权限进行EXP/IMP与其它用户稍有不同,详细内容如下(摘自metalink) Applies to: Oracle Server - Enterprise Editio ...

随机推荐

  1. 使用express4.x版、Jade模板以及mysql重写《nodejs开发指南》微博实例

    最近阅读<nodejs开发指南>一书,书是不错的,然而其微博代码示例用的是express3.x,用些过时了,运行代码出现不少bug(我电脑安的是express4.x),于是用express ...

  2. jquery中ajax请求后台数据成功后既不执行success也不执行error解决方法

    jquery中ajax请求后台数据成功后既不执行success也不执行error,此外系统报错:Uncaught SyntaxError: Unexpected identifier at Objec ...

  3. iOS 多尺寸屏幕适配

    Point Point可以理解为iOS程序员眼中的大小单位.它是iOS操作系统中的抽象的概念. Rendered Pixels可以理解为UI设计师眼中的大小单位. Physical Pixels 设备 ...

  4. apache安装报错

    libtool: install: error: cannot install `libaprutil-1.la' to a directory not ending /some_directory ...

  5. spring 配置多个properties

    复制多份,保证有效的配置文件,属性时true就行 <bean class="org.springframework.beans.factory.config.PropertyPlace ...

  6. POJ 2104 K-th Number (区间第k大)

    题意:给定一个序列A,接下来又m个询问,每个询问输出A[L,R]中的第K大.(保证第k大存在) 思路: 我想拿来练习“可持久化线段树”的,搜到这个比较巧的算法也可以解决这个问题,叫“归并树?.大概的思 ...

  7. UVALive 4080 Warfare And Logistics (最短路树)

    很多的边会被删掉,需要排除一些干扰进行优化. 和UVA - 1279 Asteroid Rangers类似,本题最关键的地方在于,对于一个单源的最短路径来说,如果最短路树上的边没有改变的话,那么最短路 ...

  8. 欧拉回路/通路 Codeforces Round #288 (Div. 2)

    http://codeforces.com/contest/508/problem/D 以上是题目链接 题目大意 给n个字符串看能不能链接在一起 因为 三个三个分割 所以字符串 如abc ab作为起点 ...

  9. mysql利用binlog恢复数据详细例子

    模拟数据恢复的案例 有些时候脑瓜就会短路,难免会出错 场景:在生产环境中,我们搭建了mysql主从,备份操作都是在从备份数据库上 前提:有最近一天或者最近的全备 或者最近一天相关数据库的备份 最重要的 ...

  10. Active Directory网域

    Active Directory网域 3.1Windows网络的管理方式 3.1.1工作组模式 工作组由一组用网络连接在一起的计算机组成,他们将计算机内的资源共享给用户访问.工作组网络也被称为“对等式 ...