关于sysdba,sysoper,dba的区别(r3笔记第62天)
关于sysdba,sysoper,dba这些名词在工作中可能接触的比较多,如果接触的环境是服务器端的,sysdba可能是经常用到的。如果是数据库的维护工作,dba就是必备的权限。 在oracle的官方文档中给出了sysdba和sysoper的区别。我在这个基础上又加入了一些东西做点补充。 标黄的部分是sysdba和sysoper的不同之处。这两个特殊的系统权限和dba权限还是有着明显的差别。
System Privilege |
Operations Authorized |
---|---|
SYSDBA |
Perform STARTUP and SHUTDOWN operationsALTER DATABASE: open, mount, back up, or change character setCREATE DATABASEDROP DATABASECREATE SPFILEALTER DATABASE ARCHIVELOGALTER DATABASE RECOVERIncludes the RESTRICTED SESSION privilegeEffectively, this system privilege allows a user to connect as user SYS. |
SYSOPER |
Perform STARTUP and SHUTDOWN operationsCREATE SPFILEALTER DATABASE OPEN/MOUNT/BACKUPALTER DATABASE ARCHIVELOGALTER DATABASE RECOVER (Complete recovery only. Any form of incomplete recovery, such as UNTIL TIME|CHANGE|CANCEL|CONTROLFILE requires connecting as SYSDBA.)Includes the RESTRICTED SESSION privilege |
- Perform STARTUP and SHUTDOWN operations
- ALTER DATABASE: open, mount, back up, or change character set
- CREATE DATABASE
- DROP DATABASE
- CREATE SPFILE
- ALTER DATABASE ARCHIVELOG
- ALTER DATABASE RECOVER
- Includes the RESTRICTED SESSION privilege
Effectively, this system privilege allows a user to connect as user SYS.SYSOPER
- Perform STARTUP and SHUTDOWN operations
- CREATE SPFILE
- ALTER DATABASE OPEN/MOUNT/BACKUP
- ALTER DATABASE ARCHIVELOG
- ALTER DATABASE RECOVER (Complete recovery only. Any form of incomplete recovery, such as UNTIL TIME|CHANGE|CANCEL|CONTROLFILE requires connecting as SYSDBA.)
- Includes the RESTRICTED SESSION privilege
1 sys,system用户都是数据库创建时内置的用户。sys绑定的是sysdba系统权限,system绑定的是dba角色。 sys的默认密码是CHANGE_ON_INSTALL,而system的默认密码是MANAGER 2 如果直接拿sys来登录,不使用sysdba,会有下面的错误。
[ora11g@rac1 ~]$ sqlplus sys/oracle
SQL*Plus: Release 11.2.0.3.0 Production on Sat Nov 22 04:39:21 2014
Copyright (c) 1982, 2011, Oracle. All rights reserved.
ERROR:
ORA-28009: connection as SYS should be as SYSDBA or SYSOPER
3 sysdba对应的用户时SYS,而sysoper对应的用户PUBLIC
SQL> conn / as sysoper
Connected.
SQL> show user
USER is "PUBLIC"
SQL> conn / as sysdba
Connected.
SQL> show user
USER is "SYS"
4 如果在服务端登录,随便用一个用户。因为设置了操作系统级的验证,所以都可以使用sysdba.
SQL> conn test/test as sysdba
Connected.
如果使用了tns连接的情况下。就会校验test的权限。发现不具备sysdba的系统权限。
SQL> conn test/tets@test01 as sysdba
ERROR:
ORA-01031: insufficient privileges
5 关于sys,不得不提到密码文件。如果没有密码文件。会报如下的错误。
[ora11g@rac1 dbs]$ sqlplus sys/oracle@test01 as sysdba
SQL*Plus: Release 11.2.0.3.0 Production on Sat Nov 22 05:40:03 2014
Copyright (c) 1982, 2011, Oracle. All rights reserved.
ERROR:
ORA-01031: insufficient privileges
创建了密码文件之后,就没有问题
[ora11g@rac1 dbs]$ orapwd password=oracle file=orapwTEST01 entries=2
[ora11g@rac1 dbs]$ sqlplus sys/oracle@test01 as sysdba
SQL*Plus: Release 11.2.0.3.0 Production on Sat Nov 22 05:40:37 2014
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, OLAP, Data Mining and Real Application Testing options
SQL> exit
6 关于sysdba和dba的区别,可以通过如下的例子来简单示范一下。 用户n1是dba用户。我们使用sysdba和dba权限的时候来看一下不同之处。
[ora11g@rac1 dbs]$ sqlplus n1/n1 as sysdba
SQL*Plus: Release 11.2.0.3.0 Production on Sat Nov 22 05:56:40 2014
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, OLAP, Data Mining and Real Application Testing options
SQL> select count(*)from cat;
COUNT(*)
----------
4809
SQL> conn n1/n1
Connected.
SQL> select count(*)from cat;
COUNT(*)
----------
406
7 sysdba具有的权限要远大于dba。我们平常使用的dba角色主要包括创建表,视图,索引等等的明细权限,但是sysdba可以做数据库级的任何操作。
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- VCS入门教程(二)
- VCS入门教程(一)
- WebRTC架构图说明
- java安全编码指南之:Mutability可变性
- RocketMQ 消息丢失场景分析及如何解决!
- Gopro Ardunio控制库.3
- GoPro Arduino控制库.阅读源码.1
- [漏洞复现] 二.Windows远程桌面服务漏洞(CVE-2019-0708)复现及详解
- 本地scratch-gui和blockly安装
- 用Python打造一款文件搜索工具,所有功能自己定义!
- 解决SSH登录缓慢
- Html ul、li Css标签详解 使用图片自定义样式 隐藏小点样式齐全
- TRTC Android端开发接入学习之实现视频通话(五)
- 让WordPress默认用户无法进入后台
- 图像处理笔记(2)----OpenCV imread函数详解