sys和system用户区别
SYS用数据库的超级用户,数据库内很多重要的东西(数据字典表、内置包、静态数据字典视图等)都属于这个用户,SYS用户必须以SYSDBA身份登录。
SYSTEM是数据库内置的一个普通管理员,你手工创建的任何用户在被授予DBA角色后都跟这个用户差不多(赋予DBA角色相当于给予了一组数据操作的权限)。
相当于sys是qq群主,system是qq群管理员
两者区别
1)最重要的区别,存储的数据的重要性不同
sys所有oracle的数据字典的基表和视图都存放在sys用户中,这些基表和视图对于oracle的运行是至关重要的,由数据库自己维护,任何用户都不能手动更改。sys用户拥有dba角色和sysdba,sysoper身份(系统权限),是oracle权限最高的用户。
system用户用于存放次一级的内部数据,如oracle的一些特性或工具的管理信息。system用户拥有普通dba角色权限。
2)其次的区别,权限的不同
sys用户具有“SYSDBA”或者“SYSOPER”系统权限,登陆也只能用这两个身份,不能用normal。
system用户只能用normal身份登陆,除非你对它授予了sysdba的系统权限或者syspoer系统权限。
sysdba、 sysoper区别
normal 、sysdba、 sysoper有什么区别
normal是普通用户(system用户只能用normal身份登陆)
sysdba不是权限,sysdba拥有最高的系统权限,当用户以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 |
dba、 sysoper区别
DBA是一种role对应的是对Oracle实例里对象的操作权限的集合,而SYSDBA是概念上的role是一种登录认证时的身份标识而已。