1 结论
1. sys 和 system 都是 Oracle '内置用户'
但 sys ('超级用户') 的权限远大于 system ('一般管理员')
2. sysdba 和 sysopr 是 'sys' 用户登录时 '用户身份验证' 的方式
3. dba 是 Oracle 的 '角色权限'
2 详解
2.1 sys 和 system 用户区别
结论:sys 和 system 都是 Oracle '内置用户'
且 sys ('超级用户') 的权限远大于 system ('一般管理员')
1. 可通过下面语句进行查询验证:
select * from dba_users t where t.username in ('SYSTEM', 'SYS');
2. sys :Oracle '超级用户',拥有最高权限。
存储 Oracle 的数据字典的基表和视图,这些基表和视图对 Oracle 的运行是至关重要的,
由数据库自己维护,任何用户都不能手动更改。
system:Oracle '一般 dba 用户',和其它用户授予 dba 角色权限后差不多
存储次一级的内部数据,如:Oracle 的一些特性或工具的管理信息。
3. 权限比较:sys 远大于 system
select t.grantee, count(1)
from dba_sys_privs t
where t.grantee in ('SYS', 'SYSTEM')
group by t.grantee;
sys 和 system 所拥有的系统权限个数:
2.2 sysdba 和 sysopr 身份认证区别
结论:sysdba 和 sysopr 是 'sys' 用户登录时 '用户身份验证' 的方式
"sys" : 只能以 'sysdba' 或 'sysopr' 身份登录
"system": 只能以 'normal' 身份登录,或者提升为 'sysdba'
说明 : (1) 若以 'sysdba' 方式认证,登录用户为 'SYS',为 Oracle '最高权限用户'
(2) 若以 'sysopr' 方式认证,登录用户为 'PUBLIC',仅有 'PUBLIC 对象权限'
pl/sql 不同权限身份登录截图:
代码演示:将 system 提升为 sys 用户
Connected to Oracle Database 11g Enterprise Edition Release 11.2.0.1.0
Connected as system@orcl
SQL> conn system/system@orcl as sysdba -- 以 sysdba 身份登录
Connected to Oracle Database 11g Enterprise Edition Release 11.2.0.1.0
Connected as system@orcl AS SYSDBA
SQL> show user
User is "SYS"
SQL>
2.3 dba 角色权限
结论:dba 是 Oracle 的 '角色权限'
1. 下面语句进行查询验证:
select * from dba_roles t where t.role = 'DBA';
2. 查询拥有 dba 权限的用户
select * from dba_role_privs t where t.granted_role = 'DBA';
拥有 dba 权限的用户: