oracle 10g system,sys,scott

来源:互联网 发布:初级程序员培训 编辑:程序博客网 时间:2024/05/29 08:34
 

dba是Oracle里的一种对象,Role 和User一样,是实实在在存在在Oracle里的物理对象,而sysdba是指的一种概念上的操作对象,在Oracle数据里并不存在。

dba是一种role对应的是对Oracle实例里对象的操作权限的集合,而sysdba是概念上的role是一种登录认证时的身份标识而已。

1. 物理上的role dba 是可以在数据字典里查到的
SQL> select * from dba_roles where upper(role) = 'DBA';

ROLE                          PASSWORD
—————————— ——–
DBA                            NO

2.而sysdba是概念上的role在数据字典里是查不到的

SQL> select * from dba_roles where upper(role) ='dba';

未选定行

 

grant dba 和grant sysdba的差别
dba是正真的role,所以grant后在dba_role_privs里有记录,而revoke后就没有了

首先创建用户zy
SQL> create user zy identified by zy;

用户已创建。

SQL> grant dba to zy;

授权成功。

SQL> select * from dba_role_privs where grantee = 'ZY';

GRANTEE                        GRANTED_ROLE                   ADM DEF
------------------------------ ------------------------------ --- ---
ZY                             DBA                            NO YES

SQL> revoke dba from zy;

撤销成功。

SQL> select * from dba_role_privs where grantee = 'ZY';

未选定行

对于sysdba是不会出现这个情况的,因为他不是正真的role

在进行下面的语句前,请你确认你是否实在sys用户下操作的
SQL> conn sys/sys as sysdba;     --sys/sys前一个是sys用户,后一个sys是密码
已连接。
SQL> grant sysdba to zy;

授权成功。

SQL> select * from dba_role_privs where grantee = 'ZY';

未选定行

sysdba是登录时候需要的他是和remote_login_passwordfile关联的
我们可以查询v$pwfile_users;
如下:

SQL> select * from v$pwfile_users;

USERNAME                       SYSDB SYSOP
------------------------------ ----- -----
SYS                            TRUE TRUE
ZY                             TRUE FALSE
当你grant sysdba后,在这里就多了一条

下面我们revoke一下,再来看
SQL> revoke sysdba from zy;

撤销成功。

SQL> select * from v$pwfile_users;

USERNAME                       SYSDB SYSOP
------------------------------ ----- -----
SYS                            TRUE TRUE


没有了。

通过上面的对比,我相信大家对DBA和SYSDBA的区别人生的比较深入了吧

上面已经知道了sysdba和sba的区别了。
下面就来看看我们安装好数据库后的几个用户了,sys,scott,system的区别了!

废话扯了一堆,你感觉才进入正题吧。

scott 是个演示用户,是让你学习ORACLE用的。

SYSDBA 不是用户,可以认为是个权限,超级权限,

超级用户分两种 SYSDBA和SYSOPT
SYSOPT 后面3个字母是operator的意思,也就是操作数据库的人,
而SYSDBA 则是管理数据库的人

SYSDBA比SYSOPT的权限还要大,而SYS用户就完全是个SYSDBA,
但SYSTEM用户默认是SYSOPT,不过它也能以SYSDBA的权限登陆

我结合别人的经验,总结就是上面的,有好的意见我们可以一起学习oracle

 



 

 

 

 



 

原创粉丝点击