1.sys 和 system 用户区别
1. 可通过下面语句进行查询验证: select * from dba_users t where t.username in ('SYSTEM', 'SYS'); 2. sys: 3. Oracle '超级用户',拥有最高权限,存储 Oracle 的数据字典的基表和视图, 4. 这些基表和视图对 Oracle 的运行是至关重要的,由数据库自己维护,任何用户都不能手动更改。 system:Oracle '一般 dba 用户',和其它用户授予 dba 角色权限后差不多存储次一级的内部数据, 如:Oracle 的一些特性或工具的管理信息。 5. 权限比较:sys 远大于 system select t.grantee, count(1) from dba_sys_privs t where t.grantee in ('SYS', 'SYSTEM') group by t.grantee; 结论:sys和system都是Oracle '内置用户' 且 sys ('超级用户') 的权限远大于 system ('一般管理员')
sys 和 system 所拥有的系统权限个数:
2.sysdba 和 sysoper 身份认证区别
结论:sysdba 和 sysopr 是 'sys' 用户登录时 '用户身份验证' 的方式 "sys":只能以'sysdba'或 'sysoper' 身份登录 "system": 只能以 'normal' 身份登录,或者提升为 'sysdba' 说明: a.若以 'sysdba' 方式认证,登录用户为 'SYS',为 Oracle '最高权限用户' b.若以 'sysoper' 方式认证,登录用户为 'PUBLIC',仅有 'PUBLIC 对象权限'
pl/sql 不同权限身份登录截图:
3.如何将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"
4.dba 角色权限
1. 下面语句进行查询验证: select * from dba_roles t where t.role = 'DBA'; 2. 查询拥有 dba 权限的用户 select * from dba_role_privs t where t.granted_role = 'DBA'; 结论:dba 是 Oracle 的 '角色权限'
默认拥有dba权限的用户: