DBA,SYSDBA,SYSOPER三者的区别

简介: DBA,SYSDBA,SYSOPER三者的区别 真题1、下面哪个选项不是Oracle的用户() A、SYSDBA   B、SYSTEM   C、SCOTT   D、SYS 答案:A。

DBA,SYSDBA,SYSOPER三者的区别





真题1、下面哪个选项不是Oracle的用户()

A、SYSDBA   B、SYSTEM   C、SCOTT   D、SYS

答案:A

SYSDBA和SYSOPER属于特殊系统权限(system privilege,也称为管理权限(administrative privilege,拥有例如数据库开启、关闭等一些系统管理级别的权限。SYSDBA拥有最高的系统权限,SYS用户必须以SYSDBASYSOPER的权限来登录,而任何用户以SYSOPER身份登陆后用户是PUBLIC。

[oracle@edsir4p1-PROD1 ~]$ sqlplus sys/oracle

 

SQL*Plus: Release 11.2.0.1.0 Production on Wed Nov 29 02:40:40 2017

 

Copyright (c) 1982, 2009, Oracle.  All rights reserved.

 

ERROR:

ORA-28009: connection as SYS should be as SYSDBA or SYSOPER

[oracle@orcltest ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.3.0 Production on Tue Dec 6 14:39:19 2016

Copyright (c) 1982, 2011, Oracle.  All rights reserved.

Connected to:

Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production

With the Partitioning, Automatic Storage Management, OLAP, Data Mining

and Real Application Testing options

SYS@lhrdb> show user

USER is "SYS"

SYS@lhrdb> grant sysoper to lhr;

Grant succeeded.

SYS@lhrdb> conn lhr/lhr as sysoper

Connected.

PUBLIC@lhrdb> show user

USER is "PUBLIC"

PUBLIC@lhrdb> conn lhr/lhr

Connected.

LHR@lhrdb> show user

USER is "LHR"


如何查找拥有SYSDBA或是SYSOPER权限的用户呢?可以使用视图V$PWFILE_USERS,结果集中的SYSDBA和SYSOPER分别代表是否含有SYSDBA和SYSOPER权限,如下所示:
SYS@PROD1> DESC V$PWFILE_USERS
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 USERNAME                                           VARCHAR2(30)
 SYSDBA                                             VARCHAR2(5)
 SYSOPER                                            VARCHAR2(5)
 SYSASM                                             VARCHAR2(5)


SYS@PROD1> SELECT * FROM V$PWFILE_USERS ;


USERNAME                       SYSDB SYSOP SYSAS
------------------------------ ----- ----- -----
SYS                            TRUE  TRUE  FALSE


SYS@PROD1> 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

SYSDBA和SYSOPER具体的权限如下表所示:

系统权限

SYSDBA

SYSOPER

区别

STARTUP启动数据库

STARTUP

SHUTDOWN关闭数据库

SHUTDOWN

ALTER DATABASE OPEN/MOUNT/BACKUP

ALTER DATABASE OPEN/MOUNT/BACKUP

改变字符集

NONE

CREATE DATABASE创建数据库

NONE不能创建数据库

DROP DATABASE删除数据库

NONE

CREATE SPFILE

CREATE SPFILE

ALTER DATABASE ARCHIVELOG归档日志

ALTER DATABASE ARCHIVELOG

ALTER DATABASE RECOVER恢复数据库

只能完全恢复,不能执行不完全恢复

拥有RESTRICTED SESSION会话限制权限

拥有RESTRICTED SESSION权限

可以让用户作为SYS用户连接

可以进行一些基本的操作,但不能查看用户数据

登录之后用户是SYS

登录之后用户是PUBLIC

本题中,对于选项ASYSDBA属于系统特殊权限,不属于用户选项A的描述错误。所以,选项A正确。

对于选项BSYSTEM是系统默认用户,拥有DBA角色。所以,选项B错误。

对于选项CSCOTT用户属于测试用户。所以,选项C错误。

对于选项DSYS用户具有管理系统的最高权限,必须以SYSDBASYSOPER来登录。所以,选项D错误。

所以,本题的答案为A






什么是DBA?什么是SYSDBA,什么又是SYSOPER?三者究竟有何联系呢?

在Oracle数据库领域里,很多Oracle初学者(Me 2)很容易被这三个术语迷惑,就其原因还是基础概念没有弄清楚。记得自己刚开始接触Oracle的时候,也是云里雾里,现在基本弄明白,故写出来和大家分享:

DBA:在Oracle数据库里面其实只是一个角色(role)。那么什么是角色呢?可以简单的认为一个角色就是某些个权限的集合体,也就是说把多个系统权限(system privilege),对象权限(object privilege)以及角色(role)揉和在一起,然后赋给一个角色。说白了,Oracle引入角色的概念,其实是为了避免相关的系统权限和对象权限的赋予和回收的复杂性。把一堆系统权限和对象权限以及角色打包之后赋给某个新角色,然后再对这个新角色进行必要的操作就显得相当便捷和方便了。当然,在Oracle里面一个角色是可以赋给另外一个角色的,但是角色的赋给是不能够构成循环回路的。eg:先把role1给role2,然后把role2给role3,那么你就不可以再把role3给role1了。这是Oracle不允许的,其实你也不可以成功执行这样的包含回路角色的授权的!

只有数据库打开了,或者说整个数据库完全启动后,dba角色才有了存在的基础


SYSDBA:拥有最高的系统权限,sysdba,是管理oracle实例的,它的存在不依赖于整个数据库完全启动,只要实例启动了,他就已经存在,以sysdba身份登陆,装载数据库、打开数据库

SQL>conn / as sysdba;这时候,其实我们是以SYSDBA这个身份去登陆数据库的,我们当前的default schema是SYS

以SYSDBA登陆Oracle数据库时,上述几种操作是允许执行的。SYSDBA可以访问V$对象视图

SYSOPER:也是一种系统权限,只不过跟SYSOPER略有区别而已。SQL>conn /as sysoper 这种连接下,我们的default schema是PUBLIC.


简单区别如下:

SQL> conn sys/oracle as sysdba;

Connected to an idle instance.

SQL> show user;

USER is “SYS”

SQL> conn sys/oracle as sysoper;

Connected to an idle instance.

SQL> show user;

USER is “PUBLIC”

sys

SQL>

Note:The SYSDBA and SYSOPER system privileges allow access to a database instance even when the database is not open. Control of these privileges is totally outside of the database itself.

SYSOPER不能访问V$对象视图


sysdba和sysoper具体的权限可以看下表:

系统权限

sysdba

sysoper

区别

Startup(启动数据库)

startup

Shutdown(关闭数据库)

shutdown

 

alter database open/mount/backup

alter database open/mount/backup

 

改变字符集

none

 

create database(创建数据库)

None不能创建数据库

 

drop database(删除数据库)

none

 

create spfile

create spfile

 

alter database archivelog(归档日志)

alter database archivelog

 

alter database recover(恢复数据库)

只能完全恢复,不能执行不完全恢复

 

拥有restricted session(会话限制)权限

拥有restricted session权限

 

可以让用户作为sys用户连接

可以进行一些基本的操作,但不能查看用户数据

 

登录之后用户是sys

登录之后用户是public

 


SYSDBA和SYSOPER系统权限允许我们在数据库打开之前以这两种身份去访问实例。SYSOPER没有权限访问V$对象视图

 

当然,DBA还可以理解成另外两个术语的简写;Database Administrator,Data Block Address。

一句话总结三者之间的关系:

Note: The DBA role does not include the SYSDBA or SYSOPER system privileges. These are special administrative privileges that allow an administrator to perform basic database administration tasks, such as creating the database and instance startup and shutdown.

DBA 角色并未包含SYSDBA,SYSOPER这两个系统权限。他们是一类特殊的系统管理权限,允许管理员以这两种身份对数据库进行特殊的管理工作。

还有就是,不要轻易将SYSDBA,SYSOPER这两种系统权限授权给数据库的普通用户。也不要轻易将DBA角色赋给普通用户。在对数据库进行普通操作的时候,也不要以SYSDBA,SYSOPER登录





About Me

.............................................................................................................................................

● 本文作者:小麦苗,部分内容整理自网络,若有侵权请联系小麦苗删除

● 本文在itpub(http://blog.itpub.net/26736162/abstract/1/)、博客园(http://www.cnblogs.com/lhrbest)和个人微信公众号(xiaomaimiaolhr)上有同步更新

● 本文itpub地址:http://blog.itpub.net/26736162/abstract/1/

● 本文博客园地址:http://www.cnblogs.com/lhrbest

● 本文pdf版、个人简介及小麦苗云盘地址:http://blog.itpub.net/26736162/viewspace-1624453/

● 数据库笔试面试题库及解答:http://blog.itpub.net/26736162/viewspace-2134706/

● DBA宝典今日头条号地址:http://www.toutiao.com/c/user/6401772890/#mid=1564638659405826

.............................................................................................................................................

● QQ群号:230161599(满)、618766405

● 微信群:可加我微信,我拉大家进群,非诚勿扰

● 联系我请加QQ好友646634621,注明添加缘由

● 于 2017-11-01 09:00 ~ 2017-11-30 22:00 在魔都完成

● 文章内容来源于小麦苗的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解

● 版权所有,欢迎分享本文,转载请保留出处

.............................................................................................................................................

小麦苗的微店https://weidian.com/s/793741433?wfr=c&ifr=shopdetail

小麦苗出版的数据库类丛书http://blog.itpub.net/26736162/viewspace-2142121/

.............................................................................................................................................

使用微信客户端扫描下面的二维码来关注小麦苗的微信公众号(xiaomaimiaolhr)及QQ群(DBA宝典),学习最实用的数据库技术。

   小麦苗的微信公众号      小麦苗的DBA宝典QQ群2     《DBA笔试面宝典》读者群       小麦苗的微店

.............................................................................................................................................


DBA笔试面试讲解群
《DBA宝典》读者群 欢迎与我联系



目录
相关文章
|
SQL Oracle 关系型数据库
探秘Oracle表空间、用户、表之间的关系
 之前的DRP项目虽然用到了oracle,但是所有数据库对象的建立都是按文档来的,并没有仔细思考总结,后面再次用到oracle时,不能再那么糊里糊涂的用了,得稍微探索一下下了,究竟这些oracle中的数据库对象之间都存在什么关系呢?
探秘Oracle表空间、用户、表之间的关系
|
SQL Oracle 关系型数据库
Oracle dblink的连接模式的关系测试总结
Oracle dblink的连接模式的关系测试总结这篇主要介绍一下database link由于连接数据库的方式不同遇到的一些问题,我们知道连接ORACLE服务器的模式一般有两种方式:专用服务器连接(dedicated server)和共享服务器连接(shared server)。
1898 0
|
关系型数据库 数据库 数据库管理
|
SQL Oracle 关系型数据库
|
SQL 关系型数据库 测试技术
DBA_Oracle Database 11g 面向 DBA 和开发人员的重要特性
2015-01-23 Created By BaoXinjian 一、摘要 在这个由多个部分组成的系列中,通过简单、可操作的方法文档和示例代码,了解这些新特性(例如,数据库重放、闪回数据存档、基于版本的重定义以及 SecureFiles 工作)的重要性。
1079 0
|
SQL 监控 Oracle
DG_Oracle DataGuard作用和概念(概念)
2014-06-03 Created By BaoXinjian  一、摘要 Oracle DataGuard是Oracle自带的数据同步功能,基本原理是将日志文件从原数据库传输到目标数据库,然后在目标数据库上应用这些日志文件,从而使目标数据库与源数据库保持同步,是一种数据库级别的高可用性方案。
1565 0
|
SQL Oracle 关系型数据库
DBA_Oracle Sort排序处理空间耗用(概念)
2014-12-18 Created By BaoXinjian 一、摘要 Oracle排序的基础 Oracle会话首先在内存中进行排序,当Oracle需要存储数据到临时表或者为哈西排序建立哈希表时,并且也会首先在内存中进行操作,虽然这两个操作不需要排序操作,但是它们在Oracle中的处理方式是相同的。
1093 0
|
SQL Oracle 关系型数据库
关于sysdba,sysoper,dba的区别
关于sysdba,sysoper,dba这些名词在工作中可能接触的比较多,如果接触的环境是服务器端的,sysdba可能是经常用到的。如果是数据库的维护工作,dba就是必备的权限。
898 0