- 1、本文档共89页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
DBA,SYSDBA,SYSOPER 三者的区别
什么是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不允许的,其实
你也不可以成功执行这样的包含回路角色的授权的!
SYSDBA :说白了就是一种系统权限而已,没有什么神秘的。当我们在SQL*PLUS
命令行上执行了类似如下的操作:
SQL>conn / as sysdba;这时候,其实我们是以SYSDBA这个身份去登陆数据库的,
我们当前的default schema是SYS。那么SYSDBA这个系统权限究竟允许执行哪
些操作呢?
■ Perform STARTUP and SHUTDOWN operations
■ ALTER DATABASE: open, mount, back up, or change character set
■ CREATE DATABASE
■ DROP DATABASE
■ CREATE SPFILE
■ ALTER DATABASE ARCHIVELOG
■ ALTER DATABASE RECOVER
■ Includes the RESTRICTED SESSION privilege
■ Perform STARTUP and SHUTDOWN operations
■ ALTER DATABASE: open, mount, back up, or change character set
■ CREATE DATABASE
■ DROP DATABASE
■ CREATE SPFILE
■ ALTER DATABASE ARCHIVELOG
■ ALTER DATABASE RECOVER
■ Includes the RESTRICTED SESSION privilege
以SYSDBA登陆Oracle数据库时,上述几种操作是允许执行的。
SYSOPER :也是一种系统权限,只不过跟SYSOPER略有区别而已。SQL>conn /as
sysoper 这种连接下,我们的default schema是PUBLIC.允许执行的操作如下:
■ Perform STARTUP and SHUTDOWN operations
■ CREATE SPFILE
■ ALTER DATABASE OPEN/MOUNT/BACKUP
■ ALTER DATABASE ARCHIVELOG
■ ALTER DATABASE RECOVER (Complete recovery only. Any form of
incomplete recovery, such as UNTIL
TIME|CHANGE|CANCEL|CONTROLFILE requires connecting as SYSDBA.)
■ Includes the RESTRICTED SESSION privilege
简单区别如下:
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
文档评论(0)