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是根本不同概念了。
normal 普通身份 sysdba 系统管理员身份 sysoper 系统操作员身份 dba和sysdba的更多相关文章
- Oracle sys和system用户、sysdba 和sysoper系统权限、sysdba和dba角色的区别
sys和system用户区别 1)最重要的区别,存储的数据的重要性不同 sys所有oracle的数据字典的基表和视图都存放在sys用户中,这些基表和视图对于oracle的运行是至关重要的,由数据库自己 ...
- 【转】Oracle Sys和system用户、sysdba 和sysoper系统权
一:最重要的区别,存储的数据的重要性不同 [sys]所有oracle的数据字典的基表和视图都存放在sys用户中,这些基表和视图对于oracle的运行是至关重要的,由数据库自己维护,任何用户都不能手动更 ...
- 翻译Oracle文档--SYSDBA和SYSOPER系统权限
SYSDBA和SYSOPER是管理权限,被用户来执行高级管理操作例如:创建 开启/关闭 备份/恢复 数据库.SYSDBA系统权限是针对想给予完全授权的数据库管理员SYSOPER系统权限允许一个用户执行 ...
- Windows系统HTTP身份验证方法
当Windows客户端尝试使用HTTP协议访问基于Web的资源时,会在客户端和服务器之间建立"对话".换句话说,服务器告诉客户端,访问资源之前进行身份验证 ,并且服务器还告诉客户端 ...
- Win7系统管理员设置了系统策略,禁止进行此安装,怎么办
系统管理员设置了系统策略,禁止进行此安装,怎么办 最佳答案 尝试方法一: windows开始菜单,运行里面输入gpedit.msc打开组策略, 在"计算机配置"→管理模板→ ...
- Win7 系统管理员设置了系统策略_禁止进行此安装_怎么办
系统管理员设置了系统策略,禁止进行此安装,怎么办 最佳答案 尝试方法一: windows开始菜单,运行里面输入gpedit.msc打开组策略, 在"计算机配置"→管理模板→ ...
- SYS与SYSTEM、DBA与SYSDBA的区别
SYS与SYSTEM: 1. sys 的角色是sysdba system 的角色是sysoper 2. sys 具有create database的权限 system没有该权限 3. sys可以建数据 ...
- Oracle开发:dba和sysdba的区别
oracle dba和sysdba的区别如下: 1.dba是一种role对应的是对Oracle实例里对象的操作权限的集合,而sysdba是概念上的role是一种登录认证时的身份标识而已.而且,dba是 ...
- ASP.NET Core - 基于IHttpContextAccessor实现系统级别身份标识
问题引入: 通过[ASP.NET Core[源码分析篇] - 认证]这篇文章中,我们知道当请求通过认证模块时,会给当前的HttpContext赋予当前用户身份标识,我们在需要授权的控制器中打上[Aut ...
随机推荐
- java多线程之join方法使用
看这篇博客:http://www.cnblogs.com/skywang12345/p/3479275.html
- textarea的实现
由于限制字数是用原有的 maxlength会有问题,所以用一般会用js控制,今天用到三种: (一)html: <body> <form name=myform action=&quo ...
- 项目搭建系列之三:SpringMVC框架下使用Ehcache对象、数据缓存
注明:该文章为以前写的文章,这里只更改了标题,无GitHub源码下载. 一.准备工作 如果已经成功搭建SpringMVC环境,那么就可以进入Ehcache的准备工作了.1.下载jar包 Ehca ...
- mysql忘记root密码的解决方法
Windows下mysql忘记root密码的解决方法 1. 首先检查mysql服务是否启动,若已启动则先将其停止服务,可在开始菜单的运行,使用命令:net stop mysql 或者在windows任 ...
- JavaScript写的随机选人真实案例
JavaScript写的随机选人真实案例 因工作需要,写了一个随机选人的小网页,先看效果图. 背景也是动态的,只不过在写的时候碰到个问题,就是如果把生成动态流星雨的画布放到上生成随机数的操作界面之上的 ...
- html笔记【重新学习】
<a></a>超链接标签: a标签有个target属性,<a href="#" target = "_self">在当前选项 ...
- ECharts动态数据加载
最近有用到ECharts做可视化报表,小结一下 一.准备数据 1.官网下载echarts.min.js 2.引入jquery.js 3.请求用的json数据 { "list":[ ...
- [原创]vs2012创建的ado.net模型无法实例化的问题
最近从vs2010升级到vs2012,建立数据模型,发现生成的东西跟以前不一样了,而且也无法实例化使用.百度尝试了n种关键词,终于被我找到解决的方法.在这里记录一下. 1.打开设计器,也就是双击这个 ...
- Android使用Gradle命令动态传参完成打包,不需要修改代码
不得不说,Gradle很强大,有人会问Gradle是什么?这里也不细讲,在我认为他就是一个构建神器.Gradle 提供了: 一个像 Ant 一样的非常灵活的通用构建工具 一种可切换的, 像 Maven ...
- JUnit_BeforeClass不报异常的 bug 处理
1.try{} cathce(Exception e){}将觉得会出问题的地方括起来测试. 2.main方法调用出问题的方法.