关于SYSDBA、SYSOPER、SYS、SYSTEM和DBA的区别和联系

本文深入解析Oracle数据库中的关键权限和角色,包括SYSDBA、SYSOPER、SYS与SYSTEM的区别,以及SYSDBA与DBA的不同之处。详细介绍了这些权限在数据库管理、启动、关闭及数据恢复等方面的具体操作权限。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.SYSDBA和SYSOPER

这些名词在中作中可能接触得比较多,如果接触的环境是服务器环境,SYSDBA可能会经常用到。如果是数据库的维护工作,DBA就是最常用的权限。

加粗的部分是SYSDBA和SYSOPER的主要不同之处。

系统权限可执行操作明细
SYSDBA

Perform STARTUP and SHUTDOWN operations    //启动和关闭数据库

ALTER DATABASE: open, mount, backup, or change character set    //修改数据库为打开,挂载模式,备份数据库和修改字符集

CREATE DATABASE    //创建数据库

DROP DATABASE    //删除数据库

CREATE SPFILE    //创建服务器参数文件

ALTER DATABASE ACHIVELOG    //设置数据为归档模式

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    //特定场景下,只有拥有这类权限的用户才可以进入数据库

 

 

 

 

 

 

 

 

 

 

 

 

  • SYSDBA对应的用户是SYS,而SYSOPER对应的用户是PUBLIC。 
[oracle@localhost bin]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on Thu Oct 4 12:45:52 2018

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


Connected to:
Oracle Database 11g Release 11.2.0.1.0 - 64bit Production

SQL> show user
USER is "SYS"
[oracle@localhost bin]$ sqlplus / as sysoper

SQL*Plus: Release 11.2.0.1.0 Production on Thu Oct 4 12:46:46 2018

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


Connected to:
Oracle Database 11g Release 11.2.0.1.0 - 64bit Production

SQL> show user
USER is "PUBLIC"

2.SYS和SYSTEM

  • SYS和SYSTEM用户都是创建数据库时内置的用户,SYS对应SYSDBA系统权限,SYSTEM绑定的是DBA角色。SYS的默认密码是CHANGE_ON_INSTALL,SYSTEM的默认密码是MANAGER。
  • sys所有oracle的数据字典的基表和视图都存放在sys用户中,这些基表和视图对于oracle的运行是至关重要的,由数据库自己维护,任何用户都不能手动更改。sys用户拥有dba,sysdba,sysoper等角色或权限,是oracle权限最高的用户。system用户用于存放次一级的内部数据,如oracle的一些特性或工具的管理信息。system用户拥有普通dba角色权限。
  • 如果直接使用sys登陆,而不是用SYSDBA,会出现下面的错误。
[oracle@localhost bin]$ sqlplus sys/Oracle123

SQL*Plus: Release 11.2.0.1.0 Production on Thu Oct 4 12:42:42 2018

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

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

3.SYSDBA和DBA

  • SYSDBA是系统权限,DBA是用户对象权限(常用的对象权限有DBA,CONNECT,RESOURCE等)。
  • SYSDBA是管理Oracle实例的,它的存在不依赖于整个数据库完全启动,只要实例启动了,它就已经存在。只要数据库打开了,或者说整个数据库完全启动后,DBA角色才有了存在基础。(oracle服务的创建过程:创建实例-启动实例-创建数据库 启动过程:实例启动-装载数据库-打开数据库)
  • DBA是一种role对应的是对Oracle实例里对象的操作权限的集合,而SYSDBA是概念上的role是一种登录认证时的身份标识而已。而且,DBA是Oracle里的一种对象,Role 和User一样,是实实在在存在在Oracle里的物理对象,而SYSDBA是指的一种概念上的操作对象,在Oracle数据里并不存在。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值