oracle中sys用户和system用户的区别
Posted 废才打败天才
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle中sys用户和system用户的区别相关的知识,希望对你有一定的参考价值。
一、最重要的区别:存储数据的重要性不同
【sys】所有 oracle 的数据字典的基表和视图都存放在 sys 用户中,这些基表和视图对于 oracle 的运行是至关重要的,由数据库自己维护,任何用户都不能手动更改。 sys 用户拥有 dba , sysdba , sysoper 等角色或权限,是 oracle 权限最高的用户。
【 system 】 用户用于存放次一级的内部数据,如 oracle 的一些特性或工具的管理信息。 system 用户拥有普通 dba 角色权限。
二、其次的区别:权限的不同
【 system 】用户只能用 normal 身份登陆 em ,除非你对它授予了 sysdba 的系统权限(grant sysdba to system)或者 sysoper 系统权限。
【 sys 】用户具有 “SYSDBA” 或者 “SYSOPER” 系统权限,登陆 em 也只能用这两个身份,不能用 normal 。
以 sys 用户登陆 Oracle ,执行 select * from V_$PWFILE_USERS; 可查询到具有 sysdba 权限的用户,如:
SQL> select * from V_$PWFILE_USERS;
USERNAME SYSDBA SYSOPER
SYS TRUE TRUE
Sysdba 和 sysoper 两个系统权限区别
normal 、 sysdba 、 sysoper 有什么区别
normal 是普通用户
另外两个,你考察他们所具有的权限就知道了
sysdba 拥有最高的系统权限,登陆后是 sys
sysoper 主要用来启动、关闭数据库, sysoper 登陆后用户是 public
sysdba 和 sysoper 属于 system privilege ,也称为 administrative privilege ,拥有例如数据库开启关闭之类一些系统管理级别的权限 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
system 如果正常登录,它其实就是一个普通的 dba 用户,但是如果以 as sysdba 登录,其结果实际上它是作为 sys 用户登录的,这一点类似 Linux 里面的 sudo 的感觉,从登录信息里面我们可以看出来。因此在 as sysdba 连接数据库后,创建的对象实际上都是生成在 sys 中的。其他用户也是一样,如果 as sysdba 登录,也是作为 sys 用户登录的,看以下实验:
SQL> create user strong identified by strong;
以上是关于oracle中sys用户和system用户的区别的主要内容,如果未能解决你的问题,请参考以下文章
为啥用system用户名可以连接Oracle 用sys用户名不可以连接