zoukankan      html  css  js  c++  java
  • normal 普通身份 sysdba 系统管理员身份 sysoper 系统操作员身份 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是根本不同概念了。

  • 相关阅读:
    一周精彩内容分享(第 5 期):货拉拉悲剧的背后
    关于 HTTP 后端人员需要了解的 20+ 图片!
    百度地图午夜暗蓝风格
    百度地图开发自定义信息窗口openInfoWindow样式
    百度地图infowindow上添加自定义点击事件
    js显示当前日期时间和星期几
    iview 树形异步加载,首次加载子节点不能选择,点击父节点后才可以选择
    js 修改属性名和值。并只保留需要的属性
    css 条形百分比
    echarts 3d饼图
  • 原文地址:https://www.cnblogs.com/hanruyue/p/5943908.html
Copyright © 2011-2022 走看看