SYS与SYSTEM、DBA与SYSDBA的区别
SYS与SYSTEM:
1. sys 的角色是sysdba system 的角色是sysoper
2. sys 具有create database的权限 system没有该权限
3. sys可以建数据字典的基表和视图,也能对其进行修改;system不能建数据字典的基表和视图.也不能对其进行修改
4. sys、system都有dba权限
用QQ群作个比喻,sys就相当于群主,system就相当于群管理员。
DBA与SYSDBA:
SYSDBA不是权限,当用户以SYSDBA身份登陆数据库时,登陆用户都会变成SYS。
SYSDBA身份登陆可以打开,关闭数据库,创建SPFILE,对数据库进行恢复操作等,而这些是DBA角色无法实现的;
SYSDBA是系统权限,DBA是用户对象权限;
SYSDBA是管理Oracle实例的,它的存在不依赖于整个数据库完全启动,只要实例启动了,他就已经存在。只有数据库打开了,或者说整个数据库完全启动后,DBA角色才有了存在的基础;(oracle服务的创建过程:创建实例-启动实例-创建数据库 启动过程:实例启动-装载数据库-打开数据库)
DBA是一种role对应的是对Oracle实例里对象的操作权限的集合,而SYSDBA是概念上的role是一种登录认证时的身份标识而已。而且,DBA是Oracle里的一种对象,Role 和User一样,是实实在在存在在Oracle里的物理对象,而SYSDBA是指的一种概念上的操作对象,在Oracle数据里并不存在。