Oracle dba和sysdba的区别

Oracle dba和sysdba的区别之前老是把dba和sysdba混为一体,今天看到论坛在讨论两者的区别,特记录如下:SYSDBA不是权限,当用户以SYSDBA身份登陆数据库时,登陆用户都会变成SYS.sysdba身份登陆可以打开,关闭数据库,创建SPFILE,对数据库进行恢复操作等,而这些是DBA角色无法实现的;sysdba是系统权限,dba是用户对象权限;sysdba,是管理oracle实例的,它的存在不依赖于

大家好,欢迎来到IT知识分享网。Oracle
         之前老是把dba和sysdba混为一体,今天看到论坛在讨论两者的区别,特记录如下:
SYSDBA不是权限,当用户以SYSDBA身份登陆数据库时,登陆用户都会变成SYS.
sysdba身份登陆可以打开,关闭数据库,创建SPFILE,对数据库进行恢复操作等,而这些是DBA角色无法实现的;

sysdba 是系统权限,dba是用户对象权限;

sysdba,是管理oracle实例的,它的存在不依赖于整个数据库完全启动,只要实例启动了,他就已经存在;

以sysdba身份登陆,装载数据库、打开数据库,只有数据库打开了,或者说整个数据库完全启动后,dba角色才有了存在的基础;
dba是一种role对应的是对Oracle实例里对象的操作权限的集合,而sysdba是概念上的role是一种登录认证时的身份标识而已。

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

SQL> select * from v$pwfile_users;

USERNAME                       SYSDB SYSOP SYSAS
------------------------------ ----- ----- -----
SYS                            TRUE  TRUE  FALSE

添加一个用户的dba权限

SQL> grant dba to jinlian
  2  ;

Grant succeeded.

明确看到系统中有dba的role权限,而且jinlian用户已经是dba,sys也是dba用户

SQL> SELECT * FROM  DBA_ROLE_PRIVS WHERE GRANTED_ROLE='DBA';

GRANTEE                        GRANTED_ROLE                   ADM DEF
------------------------------ ------------------------------ --- ---
OGG_TS                         DBA                            NO  YES
SYS                            DBA                            YES YES
JINLIAN                        DBA                            NO  YES
SYSTEM                         DBA                            YES YES

查询数据库中是否含有sysdba的角色权限

SQL> SELECT * FROM  DBA_ROLE_PRIVS WHERE GRANTED_ROLE LIKE '*DBA*';


no rows selected
SQL> SELECT * FROM  DBA_ROLE_PRIVS WHERE GRANTED_ROLE='SYSDBA';


no rows selected

并不存在sysdba的角色权限。查看此时jinlian用户是否是sysdba

SQL> select * from v$pwfile_users;


USERNAME                       SYSDB SYSOP SYSAS
------------------------------ ----- ----- -----
SYS                            TRUE  TRUE  FALSE

依然只有sys,查看orapw密码文件,只有internal(是sys用户)

[oracle@og1 dbs]$ cd /u01/app/oracle/product/11.2.0/dbhome_1/dbs/
[oracle@og1 dbs]$ strings orapwogg1 
]\[Z
ORACLE Remote Password file
INTERNAL
AB27B53EDC5FEF41
8A8F025737A9097A
3gM 

授予金莲sysdba权限,分别以普通用户和sysdba登陆

SQL> grant sysdba to jinlian;

Grant succeeded.

SQL> exit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> conn jinlian/jinlian
Connected.
SQL> show user
USER is "JINLIAN"
SQL> conn jinlian/jinlian as sysdba
Connected.
SQL> show user
USER is "SYS"

以sysdba登陆用户就是sys了,以普通用户登陆还是本身的用户。此时查看密码文件多了jinlian的密码信息

SQL> select * from v$pwfile_users;

USERNAME                       SYSDB SYSOP SYSAS
------------------------------ ----- ----- -----
SYS                            TRUE  TRUE  FALSE
JINLIAN                        TRUE  FALSE FALSE

[oracle@og1 dbs]$ strings orapwogg1 
]\[Z
ORACLE Remote Password file
INTERNAL
AB27B53EDC5FEF41
8A8F025737A9097A
3gM 
JINLIAN
E8D040CA2EE5FD93
CTe!SZ

密码文件是保存系统中具有sysdba权限用户的密码的文件。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/12704.html

(0)
上一篇 2024-03-11 20:45
下一篇 2024-03-15 16:45

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信