DBA,SYSDBA,SYSOPER三者的区别
来源:互联网 发布:大胃王密子君淘宝店 编辑:程序博客网 时间:2024/06/05 18:48
什么是DBA?什么是SYSDBA,什么又是SYSOPER?三者究竟有何联系呢?
在Oracle数据库领域里,很多Oracle初学者(Me 2)很容易被这三个术语迷惑,就其原因还是基础概念没有弄清楚。记得自己刚开始接触Oracle的时候,也是云里雾里,现在基本弄明白,故写出来和大家分享:
DBA:在Oracle数据库里面其实只是一个角色(role)。那么什么是角色呢?可以简单的认为一个角色就是某些个权限的集合体,也就是说把多个系统权限(system privilege),对象权限(object privilege)以及角色(role)揉和在一起,然后赋给一个角色。说白了,Oracle引入角色的概念,其实是为了避免相关的系统权限和对象权限的赋予和回收的复杂性。把一堆系统权限和对象权限以及角色打包之后赋给某个新角色,然后再对这个新角色进行必要的操作就显得相当便捷和方便了。当然,在Oracle里面一个角色是可以赋给另外一个角色的,但是角色的赋给是不能够构成循环回路的。eg:先把role1给role2,然后把role2给role3,那么你就不可以再把role3给role1了。这是Oracle不允许的,其实你也不可以成功执行这样的包含回路角色的授权的!
只有数据库打开了,或者说整个数据库完全启动后,dba角色才有了存在的基础
SYSDBA:拥有最高的系统权限,sysdba,是管理oracle实例的,它的存在不依赖于整个数据库完全启动,只要实例启动了,他就已经存在,以sysdba身份登陆,装载数据库、打开数据库
SQL>conn / as sysdba;这时候,其实我们是以SYSDBA这个身份去登陆数据库的,我们当前的default schema是SYS。
以SYSDBA登陆Oracle数据库时,上述几种操作是允许执行的。SYSDBA可以访问V$对象视图
SYSOPER:也是一种系统权限,只不过跟SYSOPER略有区别而已。SQL>conn /as sysoper 这种连接下,我们的default schema是PUBLIC.
简单区别如下:
SQL> conn sys/oracle as sysdba;
Connected to an idle instance.
SQL> show user;
USER is “SYS”
SQL> conn sys/oracle as sysoper;
Connected to an idle instance.
SQL> show user;
USER is “PUBLIC”
sys
SQL>Note:The SYSDBA and SYSOPER system privileges allow access
SYSOPER不能访问V$对象视图
sysdba和sysoper具体的权限可以看下表:
系统权限
sysdba
sysoper
区别
Startup(启动数据库)
startup
Shutdown(关闭数据库)
shutdown
alter database open/mount/backup
alter database open/mount/backup
改变字符集
none
create database(创建数据库)
None不能创建数据库
drop database(删除数据库)
none
create spfile
create spfile
alter database archivelog(归档日志)
alter database archivelog
alter database recover(恢复数据库)
只能完全恢复,不能执行不完全恢复
拥有restricted session(会话限制)权限
拥有restricted session权限
可以让用户作为sys用户连接
可以进行一些基本的操作,但不能查看用户数据
登录之后用户是sys
登录之后用户是public
SYSDBA和SYSOPER系统权限允许我们在数据库打开之前以这两种身份去访问实例。SYSOPER没有权限访问V$对象视图
当然,DBA还可以理解成另外两个术语的简写;Database Administrator,Data Block Address。
一句话总结三者之间的关系:
Note: The DBA role does not include the SYSDBA or SYSOPER
DBA 角色并未包含SYSDBA,SYSOPER这两个系统权限。他们是一类特殊的系统管理权限,允许管理员以这两种身份对数据库进行特殊的管理工作。
还有就是,不要轻易将SYSDBA,SYSOPER这两种系统权限授权给数据库的普通用户。也不要轻易将DBA角色赋给普通用户。在对数据库进行普通操作的时候,也不要以SYSDBA,SYSOPER登录
- DBA,SYSDBA,SYSOPER三者的区别
- DBA,SYSDBA,SYSOPER三者的区别
- DBA,SYSDBA,SYSOPER三者的区别
- DBA,SYSDBA,SYSOPER三者的区别
- oracle:DBA,SYSDBA,SYSOPER三者的区别
- sysdba,dba,sysoper的区别
- sysdba、sysoper和dba三种角色的区别
- Oracle:sysdba,dba,sysoper的区别
- 关于sysdba,sysoper,dba的区别
- oracle normal、sys、system、sysdba、sysoper&dba的区别
- Oracle sys和system用户、sysdba 和sysoper系统权限、sysdba和dba角色的区别
- Oracle sys和system用户、sysdba 和sysoper系统权限、sysdba和dba角色的区别
- Oracle sys和system用户、sysdba 和sysoper系统权限、sysdba和dba角色的区别 .
- Oracle sys和system用户、sysdba 和sysoper系统权限、sysdba和dba角色的区别
- Oracle sys和system用户、sysdba 和sysoper系统权限、sysdba和dba角色的区别
- Oracle sys和system用户、sysdba 和sysoper系统权限、sysdba和dba角色的区别
- Oracle sys和system用户、sysdba 和sysoper系统权限、sysdba和dba角色的区别 .
- Oracle sys和system用户、sysdba 和sysoper系统权限、sysdba和dba角色的区别
- Javascript(jQuery)中绑定页面上所有按钮点击事件的几种方式
- js 同步和异步 的理解
- C++中的yield和reenter和fork
- Weka标签在java中的变量表示
- Uncaught TypeError: sum is not a function
- DBA,SYSDBA,SYSOPER三者的区别
- IntentService 示例与详解(看过写的不错的文章--链接地址)
- C++程序员可能会犯的错误
- Android NDK一键编译
- 利用HttpClient发送post请求京东接口并将结果用POI导出为 Excel表格
- Android设计模式之观察者模式
- Oracle中激活scott账号
- Eclipse webservice client 调用 .net接口
- [POJ1804]Brainman