Oracle system用户的实际权限

数据库 Oracle
Oracle数据库中使用system用户登录,却出现错误,难道Oracle system用户不是默认具有SYSDBA权限的吗?果不是,为什么以前很多时候,数据库建好后直接就可以用system作为sysdba登录呢?

Oracle system用户登录数据库也会出现问题吗,下文对Oracle system用户的实际权限作了分析讨论,供您参考学习。

之前新建了一个数据库,通过pl/sql developer登录,使用的是Oracle system用户,身份为SYSDBA,结果报错:insufficient privileges( 权限不足 )。***只好让sys用户登录后执行grant sysdba to system为Oracle system用户赋予sysdba权限。

这里就有了问题:难道Oracle system用户不是默认具有SYSDBA权限的吗?如果不是,为什么以前很多时候,数据库建好后直接就可以用system作为sysdba登录呢?

首先要了解的是, 在Oracle数据库系统中,用户如果要以特权用户身份(INTERNAL/SYSDBA/SYSOPER)登录Oracle会有两种身份验证的方法:操作系统验证方式(OS)、密码文件验证方式。OS验证方式是指,在登录Oracle时,让操作系统来完成登录用户的权限验证。具体是:安装 Oracle时(注意不是创建Oracle数据库实例时),Oracle数据库服务器所在的操作系统会产生一个用户组(windows中默认是 ORA_DBA),这个组中的用户在登录操作系统后又去登录Oracle时,无论他输入的用户名密码是什么,都能够以sysdba身份登录成功。但是这时候实际上是以sys用户在登录的,所以登陆成功后以 show user命令查看当前登录的用户时,返回的是sys。

密码文件验证是指,Oracle通过一个密码文件对登录的用户进行权限验证,这个文件中记录着 sys用户的口令以及其它 特权用户 的用户名/口令,通俗的说就是这个文件中记录了当前具有sysdba权限的用户名及其口令。通常密码文件是 存放在%ORACLE_HOME%\DATABASE目录下,在使用Oracle Instance Manager创建一数据库实例的时侯,Oracle系统会自动创建一个与实例对应的密码文件,文件名为 PWDSID.ORA,其中SID代表相应的Oracle数据库系统标识符。此密码文件是进行初始数据库管理工作的基础。在此之后,管理员也可以根据需要,使用工具ORAPWD.EXE手工创建密码文件。

那么这两种验证方式在哪里设置呢?具体在Oracle9i中是%ORACLE_HOME%\ora92\network\admin\sqlnet.ora文件中,有如下的配置:

SQLNET.AUTHENTICATION_SERVICES = (NONE) # 这是密码文件验证方式.
SQLNET.AUTHENTICATION_SERVICES = (NTS)     # 这是OS验证方式.

说完了验证方式,再说一下sys、system用户的权限。sys用户拥有dba,sysdba,sysoper等角色或权限,是oracle权限***的用户,所有oracle的数据字典的基表和视图都存放在sys用户中,登陆时也只能用sysdba、sysoper这两个身份,不能用normal身份。 Oracle system用户拥有普通角色权限,只能用normal身份登陆,除非你对它授予了sysdba的系统权限或者syspoer系统权限。

那这样的话,为什么之前很多时候可以直接用system用户作为syadba登录呢?那时因为,当时Oracle的验证方式是OS方式。而这次因为我登录前恰好改动了sqlnet.ora文件,所以就不能以system用户通过sysdba登录了。
 

 

 

【编辑推荐】

Oracle用户和模式的区别

oracle对象权限简介

三种oracle赋权

教您如何在oracle中存图片

oracle树查询的实现

责任编辑:段燃 来源: 互联网
相关推荐

2010-10-28 11:24:05

oracle用户权限

2010-10-29 10:46:23

Oracle超级用户

2009-10-27 17:39:39

Oracle用户权限

2009-10-29 15:56:12

Oracle用户权限视

2010-05-07 12:19:38

Oracle删除用户表

2010-04-15 14:30:35

Oracle创建

2010-10-29 11:38:50

Oracle syst

2010-04-21 12:24:02

Oracle用户权限

2010-03-31 15:38:33

Oracle用户

2009-10-27 18:01:46

2010-10-28 11:29:18

ORACLE用户权限

2010-05-10 14:04:01

Oracle系统用户权

2009-10-21 14:27:12

Oracle用户权限分

2010-04-21 13:10:53

Oracle用户权限

2009-10-21 14:48:39

Oracle用户权限表

2011-03-25 10:43:31

Oracle系统用户权限赋予

2010-05-10 10:19:28

Oracle实战RMA

2009-11-02 14:53:30

Oracle创建用户权

2009-11-03 17:08:38

Oracle修改用户权

2009-11-02 15:15:43

Oracle授予用户权
点赞
收藏

51CTO技术栈公众号