博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
oracle中sys,system,scott,hr用户
阅读量:5042 次
发布时间:2019-06-12

本文共 2328 字,大约阅读时间需要 7 分钟。


scott 是个演示用户,是让你学习ORACLE用的

hr用户是个示例用户,是在创建数据库时选中“示例数据库”后产生的,实际就是模拟一个人力资源部的数据库。

SYSDBA 不是用户,可以认为是个权限,超级权限。默认中sys就拥有这种超级权限,是权限最高的用户。
详细点说吧
            超级用户分两种 SYSDBA和SYSOPT
SYSOPT 后面3个字母是operator的意思,也就是操作数据库的人,而SYSDBA 则是管理数据库的人
SYSDBA比SYSOPT的权限还要大,而SYS用户就完全是个SYSDBA,但SYSTEM用户默认是SYSOPT,不过它也能以SYSDBA的权限登陆

 

sys和system用户区别

1)最重要的区别,存储的数据的重要性不同

sys所有oracle的数据字典的基表和视图都存放在sys用户中,这些基表和视图对于oracle的运行是至关重要的,由数据库自己维护,任何用户都不能手动更改。sys用户拥有dba,sysdba,sysoper等角色或权限,是oracle权限最高的用户。

 

system用户用于存放次一级的内部数据,如oracle的一些特性或工具的管理信息。system用户拥有普通dba角色权限。

 

2)其次的区别,权限的不同

system用户只能用normal身份登陆em,除非你对它授予了sysdba的系统权限或者syspoer系统权限。

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;

用户已创建。

SQL> conn  as sysdba;

已连接。

SQL> show user;

USER 为 "SYS"

SQL> create table test(a int);

表已创建。

SQL> select owner from dba_tables where table_name='test';

未选定行 //因为创建表时oracle自动转为大写,所以用小写查的时候是不存在的;

SQL> select owner from dba_tables where table_name='TEST';

OWNER

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

SYS

 

dba和sysdba的区别

dba、sysdba这两个系统角色有什么区别呢

在说明这一点之前我需要说一下oracle服务的创建过程

创建实例→·启动实例→·创建数据库(system表空间是必须的)

启动过程

实例启动→·装载数据库→·打开数据库

sysdba,是管理oracle实例的,它的存在不依赖于整个数据库完全启动,只要实例启动了,他就已经存在,以sysdba身份登陆,装载数据库、打开数据库。只有数据库打开了,或者说整个数据库完全启动后,dba角色才有了存在的基础!

转载于:https://www.cnblogs.com/jiangfeilong/p/10923604.html

你可能感兴趣的文章
OAuth和OpenID的区别
查看>>
android 分辨率自适应
查看>>
查找 EXC_BAD_ACCESS 问题根源的方法
查看>>
国外媒体推荐的5款当地Passbook通行证制作工具
查看>>
日常报错
查看>>
list-style-type -- 定义列表样式
查看>>
hibernate生成表时,有的表可以生成,有的却不可以 2014-03-21 21:28 244人阅读 ...
查看>>
mysql-1045(28000)错误
查看>>
Ubuntu 编译出现 ISO C++ 2011 不支持的解决办法
查看>>
1.jstl c 标签实现判断功能
查看>>
Linux 常用命令——cat, tac, nl, more, less, head, tail, od
查看>>
超详细的Guava RateLimiter限流原理解析
查看>>
VueJS ElementUI el-table 的 formatter 和 scope template 不能同时存在
查看>>
Halcon一日一练:图像拼接技术
查看>>
Swift - RotateView
查看>>
iOS设计模式 - 中介者
查看>>
centos jdk 下载
查看>>
HDU 1028 Ignatius and the Princess III(母函数)
查看>>
(转)面向对象最核心的机制——动态绑定(多态)
查看>>
token简单的使用流程。
查看>>