ora_dba sysdba & dba的辨析
来源:互联网 发布:软件打包 编辑:程序博客网 时间:2024/05/23 12:52
dba是Oracle里的一种对象(更精确地描述是 DBA是Oracle数据库定义的一个Role),Role 和User一样,是实实在在存在在Oracle里的物理对象,而sysdba是指的一种概念上的操作对象,在Oracle数据里并不存在。 所以说这两个概念是完全不同的。dba是一种role,它所对应的是对Oracle实例里对一系列操作权限的集合,而sysdba是概念上的role,仅是是一种登录认证时的身份标识而已。
下面我们通过详细的实例来看看他们的区别
1. 物理上的role dba 是可以在数据字典里查到的
SQL> Select * From Dba_Roles Where Role = 'DBA'; (由于Oracle不同数据库版本差异 此视图的列数可能不同 后面视图也有类似情况)
ROLE PASSWORD AUTHENTICAT
------------------------------ -------- -----------
DBA NO NONE
而sysdba是概念上的role在数据字典里是查不到的
SQL> Select * From Dba_Roles Where Role ='SYSDBA';
no rows selected
2. grant dba 和grant sysdba的差别
dba是真正的role,所以grant后在dba_role_privs里有记录,而revoke后就没有了
SQL> GRANT DBA TO SH;
SQL> Select * From Dba_Role_Privs Where Grantee = 'SH';
GRANTEE GRANTED_ROLE ADM DEF
------------------------------ ------------------------------ --- ---
SH RESOURCE NO YES
SH CWM_USER NO YES
SH DBA NO YES
SQL> REVOKE DBA FROM SH;
SQL> Select * From Dba_Role_Privs Where Grantee = 'SH';
GRANTEE GRANTED_ROLE ADM DEF
------------------------------ ------------------------------ --- ---
SH RESOURCE NO YES
SH CWM_USER NO YES
对于sysdba是不会出现这个情况的,因为他不是真正的role
SQL> GRANT SYSDBA TO SH;
SQL> Select * From Dba_Role_Privs Where Grantee = 'SH';
GRANTEE GRANTED_ROLE ADM DEF
---------------------------------------
TESTUSER RESOURCE NO YES
TESTUSER CONNECT NO YES
3. sysdba是登录时候需要的一种认证方式
所以它适合和remote_login_passwordfile关联的 它所记录的相关视图则是v$pwfile_users;
SQL> GRANT SYSDBA TO SH;
SQL> Select * From V$Pwfile_Users;
USERNAME SYSDB SYSOP SYSAS
------------------------------ ----- ----- -----
SYS TRUE TRUE FALSE
SH TRUE FALSE FALSE
SQL> REVOKE SYSDBA FROM SH;
SQL> Select * From V$Pwfile_Users;
USERNAME SYSDB SYSOP SYSAS
------------------------------ ----- ----- -----
SYS TRUE TRUE FALSE
4. sysdba的作用是使用户可以使用特定身份来登录Oracle数据库(dba_users中的sys)并可以执行任何关于数据库方面的命令和操作
相比DBA角色拥有的权限更大 比如可以create pfile,但dba角色是无法create pfile的
SQL> GRANT DBA TO SH;
授权成功。
SQL> conn sh/sysdba@athlon4_ora11g
已连接。
SQL> show user;
USER 为 "SH"
SQL> SELECT * FROM USER_ROLE_PRIVS;
USERNAME GRANTED_ROLE ADM DEF OS_
------------------------------ ------------------------------ --- --- ---
SH CWM_USER NO YES NO
SH DBA NO YES NO
SH RESOURCE NO YES NO
SQL> create pfile from spfile;
create pfile from spfile
*
第 1 行出现错误:
ORA-01031: 权限不足
SQL> conn sh/sysdba@athlon4_ora11g as sysdba
已连接。
SQL> show user;
USER 为 "SYS"
SQL> show parameter spfile;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string D:\ORACLE\PRODUCT\11.2.0\DB_1\
DATABASE\SPFILEORA11G.ORA
SQL> create pfile from spfile;
文件已创建。
5. ora_dba的作用 Members can connect to the Oracle database as a DBA without a Password
ora_dba 主要是配合着ORACLE_HOME/network/admin/sqlnet.ora使用
主要作用进行登录方式设置
举例在windows环境下 SQLNET.AUTHENTICATION_SERVICES= (NTS) 那么ora_dba组中的用户可以不使用密码进行登录
在AUX环境下 sqlnet.ora文件默认可以不配置
ora_dba 对远程登录用户不起作用 对远程用户起作用的主要是remote_login_password初始化参数和PWD<SID>.ora文件
下面我们通过详细的实例来看看他们的区别
1. 物理上的role dba 是可以在数据字典里查到的
SQL> Select * From Dba_Roles Where Role = 'DBA'; (由于Oracle不同数据库版本差异 此视图的列数可能不同 后面视图也有类似情况)
ROLE PASSWORD AUTHENTICAT
------------------------------ -------- -----------
DBA NO NONE
而sysdba是概念上的role在数据字典里是查不到的
SQL> Select * From Dba_Roles Where Role ='SYSDBA';
no rows selected
2. grant dba 和grant sysdba的差别
dba是真正的role,所以grant后在dba_role_privs里有记录,而revoke后就没有了
SQL> GRANT DBA TO SH;
SQL> Select * From Dba_Role_Privs Where Grantee = 'SH';
GRANTEE GRANTED_ROLE ADM DEF
------------------------------ ------------------------------ --- ---
SH RESOURCE NO YES
SH CWM_USER NO YES
SH DBA NO YES
SQL> REVOKE DBA FROM SH;
SQL> Select * From Dba_Role_Privs Where Grantee = 'SH';
GRANTEE GRANTED_ROLE ADM DEF
------------------------------ ------------------------------ --- ---
SH RESOURCE NO YES
SH CWM_USER NO YES
对于sysdba是不会出现这个情况的,因为他不是真正的role
SQL> GRANT SYSDBA TO SH;
SQL> Select * From Dba_Role_Privs Where Grantee = 'SH';
GRANTEE GRANTED_ROLE ADM DEF
---------------------------------------
TESTUSER RESOURCE NO YES
TESTUSER CONNECT NO YES
3. sysdba是登录时候需要的一种认证方式
所以它适合和remote_login_passwordfile关联的 它所记录的相关视图则是v$pwfile_users;
SQL> GRANT SYSDBA TO SH;
SQL> Select * From V$Pwfile_Users;
USERNAME SYSDB SYSOP SYSAS
------------------------------ ----- ----- -----
SYS TRUE TRUE FALSE
SH TRUE FALSE FALSE
SQL> REVOKE SYSDBA FROM SH;
SQL> Select * From V$Pwfile_Users;
USERNAME SYSDB SYSOP SYSAS
------------------------------ ----- ----- -----
SYS TRUE TRUE FALSE
4. sysdba的作用是使用户可以使用特定身份来登录Oracle数据库(dba_users中的sys)并可以执行任何关于数据库方面的命令和操作
相比DBA角色拥有的权限更大 比如可以create pfile,但dba角色是无法create pfile的
SQL> GRANT DBA TO SH;
授权成功。
SQL> conn sh/sysdba@athlon4_ora11g
已连接。
SQL> show user;
USER 为 "SH"
SQL> SELECT * FROM USER_ROLE_PRIVS;
USERNAME GRANTED_ROLE ADM DEF OS_
------------------------------ ------------------------------ --- --- ---
SH CWM_USER NO YES NO
SH DBA NO YES NO
SH RESOURCE NO YES NO
SQL> create pfile from spfile;
create pfile from spfile
*
第 1 行出现错误:
ORA-01031: 权限不足
SQL> conn sh/sysdba@athlon4_ora11g as sysdba
已连接。
SQL> show user;
USER 为 "SYS"
SQL> show parameter spfile;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string D:\ORACLE\PRODUCT\11.2.0\DB_1\
DATABASE\SPFILEORA11G.ORA
SQL> create pfile from spfile;
文件已创建。
5. ora_dba的作用 Members can connect to the Oracle database as a DBA without a Password
ora_dba 主要是配合着ORACLE_HOME/network/admin/sqlnet.ora使用
主要作用进行登录方式设置
举例在windows环境下 SQLNET.AUTHENTICATION_SERVICES= (NTS) 那么ora_dba组中的用户可以不使用密码进行登录
在AUX环境下 sqlnet.ora文件默认可以不配置
ora_dba 对远程登录用户不起作用 对远程用户起作用的主要是remote_login_password初始化参数和PWD<SID>.ora文件
0 0
- ora_dba sysdba & dba的辨析
- dba和sysdba的区别
- sysdba,dba,sysoper的区别
- dba和sysdba的区别
- dba和sysdba的区别
- dba和sysdba的区别
- sysdba和dba的区别
- oracle 的 sys,system,scott,sysdba,dba
- oracle dba和sysdba的区别
- Oracle:sysdba,dba,sysoper的区别
- DBA,SYSDBA,SYSOPER三者的区别
- 关于sysdba,sysoper,dba的区别
- DBA,SYSDBA,SYSOPER三者的区别
- DBA,SYSDBA,SYSOPER三者的区别
- DBA,SYSDBA,SYSOPER三者的区别
- Oracle dba和sysdba的区别
- Oracle中sysdba和dba的区别
- oracle normal、sys、system、sysdba、sysoper&dba的区别
- C#中身份证验证的功能模块(18位)
- 线程睡眠sleep()方法和线程让步yield()方法的主要区别
- Web页面的字体介绍
- QQ for linux 腾讯值得深思
- 牛津词典应用程序/ 网址
- ora_dba sysdba & dba的辨析
- Codeforces Round #238 (Div. 2)(位运算)
- 远程桌面带入声音
- 03. 实例方法和实例变量
- MySQL数据库中文乱码的问题
- 多线程与异步调用
- Mondrian中聚合表的应用
- 郭天祥
- 交叉编译支持多线程的Android版X264库