oracle中sysdba与dba的区别,dba和sysdba的区别

as sysdba 就是以sysdba登录,oracle登录身份有三种: normal 普通身份 sysdba 系统管理员身份 sysoper 系统操作员身份 每种身份对应不同的权限 sysdba权限: ●启动和关闭操作 ●更改数据库状态为打开/装载/备份,更改字符集 ●创建数据库 ●创建服务器参数文件spfile ●日志归档和恢复 ●包含了“会话权限”权限 sysoper权限: ●启动和关闭操作 ●更改数据库状态为打开/装载/备份 ●创建服务器参数文件SPFILE ●日志归档和恢复 ●包含了“会话权限”权限

请关注2个视图:dba_role_privs与 v$pwfile_users。

言简意赅的说下就是 dba跟dba_role_privs有关,而sysdba跟v$pwfile_users有关 下面引用下csdn一网友的小实验:

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

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

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

SQL> select * from dba_roles where upper(role) = ‘SYSDBA’;  no rows selected

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

SQL>  grant dba to testuser;  SQL> select * from dba_role_privs where grantee = ‘TESTUSER’;  GRANTEE                        GRANTED_ROLE                  ADM DEF  —————————— —————————— — —  TESTUSER                      RESOURCE                      NO  YES  TESTUSER                      CONNECT                        NO  YES  TESTUSER                      DBA                            NO  YES  SQL>  revoke dba from testuser;  SQL> select * from dba_role_privs where grantee = ‘TESTUSER’;  GRANTEE                        GRANTED_ROLE                  ADM DEF  —————————— —————————— — —  TESTUSER                      RESOURCE                      NO  YES  TESTUSER                      CONNECT                        NO  YES

对于sysdba是不会出现这个情况的,因为他不是正真的role  SQL> grant sysdba to testuser;  SQL> select * from dba_role_privs where grantee = ‘TESTUSER’;  GRANTEE                        GRANTED_ROLE                  ADM DEF  —————————— —————————— — —  TESTUSER                      RESOURCE                      NO  YES  TESTUSER                      CONNECT                        NO  YES

那么这个是sysdba是这么记录的 sysdba是登录时候需要的他是和remote_login_passwordfile关联的  我们可以查询v$pwfile_users;  如下:  SQL> select * from v$pwfile_users;  USERNAME                      SYSDB SYSOP  —————————— —– —–  SYS                            TRUE  TRUE  SYSTEM                        TRUE  FALSE  TESTUSER                      TRUE  FALSE  当你grant sysdba后,在这里就多了一条  下面我们revoke一下,再来看  SQL> revoke sysdba from testuser;  SQL> select * from v$pwfile_users;  USERNAME                      SYSDB SYSOP  —————————— —– —–  SYS                            TRUE  TRUE  SYSTEM                        TRUE  FALSE

消失了对吧。

所以在这里dba和sysdba是根本不同概念了。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值