👨🎓 博主介绍:
IT邦德,江湖人称jeames007,10年DBA工作经验
中国DBA联盟(ACDU)成员,目前从事DBA及程序编程
(Web\java\Python)工作,主要服务于生产制造
现拥有 Oracle 11g OCP/OCM、
Mysql、Oceanbase(OBCA)认证
分布式TBase\TDSQL数据库、国产达梦数据库以及红帽子认证
擅长主流数据Oracle、MySQL、PG 运维开发,备份恢复,
安装迁移,性能优化、故障应急处理等。
文章目录
前言
针对Oracle管理员用户及身份认证,本文做了详细的阐述~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 ('一般管理员')
2.sysdba 和 sysoper 身份认证区别
结论:sysdba 和 sysopr 是 'sys' 用户登录时 '用户身份验证' 的方式
"sys":只能以'sysdba'或 'sysoper' 身份登录
"system": 只能以 'normal' 身份登录,或者提升为 'sysdba'
说明:
a.若以 'sysdba' 方式认证,登录用户为 'SYS',为 Oracle '最高权限用户'
b.若以 'sysoper' 方式认证,登录用户为 'PUBLIC',仅有 'PUBLIC 对象权限'
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 的 '角色权限'