`
logicgate
  • 浏览: 98613 次
  • 性别: Icon_minigender_1
  • 来自: 新力吐皮
社区版块
存档分类
最新评论

Oracle 学习笔记: SYSDBA登陆权限问题

阅读更多

本文环境配置:Oracle10gR2,Windows XP

 

Oracle的用户信息一般来说是保存在数据字典里的,所以常规用户在Oracle数据库没有启动的时候是无法登陆的。但有两类用户例外,这就是具有sysdba或者sysoper权限的用户。Oracle sysdba或者sysoper用户的登陆有两种方式:一是通过OS认证,二是通过密码文件验证。

 

究竟使用哪一种验证方式以及能否成功登陆取决于三个方面的因素:

1. sqlnet.ora中SQLNET.AUTHENTICATION_SERVICES的设置

2. 参数文件中REMOTE_LOGIN_PASSWORDFILE的设置

3. 密码文件 PWD%sid%.ora

 

Oracle进行权限验证的大致顺序如下:

1. 根据SQLNET.AUTHENTICATION_SERVICES的值决定是进行os验证还是密码文件验证。

2. 如果是os验证,根据当前用户的用户组判断是否具有sysdba权限。如果os验证失败,则进行密码文件验证。

2. 如果是密码文件验证,REMOTE_LOGIN_PASSWORDFILE的值以及密码文件是否存在决定了验证是否成功。

 

1. OS

 

要启用os验证,就必须在qlnet.ora中设置SQLNET.AUTHENTICATION_SERVICES=(NTS),然后在Windows中建立ora_dba用户组,把相关用户加入到这个组中(e.g., administrator),这样administrator就可以在不用提供用户名和密码(或者提供任意的用户名和密码)的情况下以sysdba身份本地登陆。因为操作系统已经代替Oracle进行了验证。

 

测试一:ora_dba用户本地登陆

C:\>sqlplus / as sysdba
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the OLAP and Data Mining options
SQL>

C:\>sqlplus wrong_user/wrong_password as sysdba
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the OLAP and Data Mining options
SQL>

 

测试二:非ora_dba用户本地登陆

C:\>sqlplus / as sysdba
ERROR:
ORA-01031: insufficient privileges
Enter user-name:

C:\>sqlplus wrong_user/wrong_password sysdba
ERROR:
ORA-01017: invalid username/password; logon denied
Enter user-name:

C:\>sqlplus sys/change_on_install as sysdba
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the OLAP and Data Mining options
SQL>
 

2. 密码文件验证

 

密码文件包含了被授予sysdba和sysoper权限的用户的用户名和密码。这是一个加密文件,一般来说存放在%oracle_home%/database目录下,文件名为PWD%sid%.ora。

 

如果要使用密码文件验证,则把sqlnet.ora改为SQLNET.AUTHENTICATION_SERVICES=none,或者从sqlnet.ora中删除SQLNET.AUTHENTICATION_SERVICES。同上匿名登陆sqlplus会失败,给出用户名和密码就可以成功登陆。

C:\>sqlplus / as sysdba
ERROR:
ORA-01031: insufficient privileges
Enter user-name:

C:\>sqlplus sys/change_on_install as sysdba
Connected to an idle instance.
idle>

 

测试一:删除密码文件。使用用户名和密码登陆,失败!

C:\>sqlplus sys/change_on_install as sysdba
ERROR:
ORA-01031: insufficient privileges
Enter user-name:

 

测试二:恢复密码文件,设置REMOTE_LOGIN_PASSWORDFILE=none。使用用户名和密码登陆,失败!

SQL> alter system set remote_login_passwordfile=none scope=spfile;
System altered.

C:\>sqlplus sys/change_on_install as sysdba
ERROR:
ORA-01017: invalid username/password; logon denied
Enter user-name:

 

测试三:恢复密码文件,设置REMOTE_LOGIN_PASSWORDFILE为EXCLUSIVE或者SHARED。使用用户名和密码登陆,成功!

SQL> alter system set remote_login_passwordfile=exclusive scope=spfile;
System altered.

C:\>sqlplus sys/change_on_install as sysdba
Connected to an idle instance.
SQL>

 

3. 密码文件

 

查看具有sysdba或者sysoper权限的用户:

SQL> select * from v$pwfile_users;

USERNAME                        SYSDB    SYSOP
------------------------------  -------  -------
SYS                             TRUE     TRUE

 

每次使用grant sysdba/sysoper授予新用户特殊权限或是alter user命令修改拥有sysdba/sysoper权限的用户密码的时候,Oracle都会自动的同步密码文件,这样保证在数据库没有打开的情况拥有特殊权限的用户能正常的登陆数据库以进行管理操作。

SQL> grant sysdba to logicgate;
Grant succeeded.

SQL> select * from v$pwfile_users;

USERNAME                       SYSDB     SYSOP
------------------------------- -------- --------
SYS                             TRUE     TRUE
LOGICGATE                       TRUE     FALSE

 

使用orapwd命令可以重建密码文件。

C:\>orapwd
Usage: orapwd file=<fname> password=<password> entries=<users> force=<y/n>
  where
    file - name of password file (mandatory),
    password - password for SYS (mandatory),
    entries - maximum number of distinct DBA (optional),
    force - whether to overwrite existing file (optional)

 

其中文件名和密码是必需的。entries设置了密码文件可包含的dba用户的最大数目。force定义了是否覆盖当前文件。重建密码文件会清除系统内除了sys用户以外所有sysdba用户的密码。必须使用grant sysdba同步密码文件。

C:\>orapwd file=%oracle_home%\database\PWDepcit.ora password=temp entries=20 force=y;

C:\>sqlplus sys/temp as sysdba
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the OLAP and Data Mining options

SQL> select * from v$pwfile_users;

USERNAME                        SYSDB    SYSOP
------------------------------- -------- --------
SYS                             TRUE     TRUE
分享到:
评论
1 楼 wpf523 2012-07-31  
好,不错啊

相关推荐

    Oracle学习笔记 Oracle学习笔记

    根据提供的信息,我们可以总结出以下Oracle数据库学习的关键知识点: ...以上是基于提供的内容整理出的Oracle学习笔记中的关键知识点。通过理解这些基础知识,可以更好地管理和操作Oracle数据库。

    oracle学习笔记下载

    ### Oracle 学习笔记知识点概览 #### 一、Oracle 数据库系统参数查询与管理 在 Oracle 数据库的学习过程中,了解如何查看和管理数据库的系统参数是非常重要的。这些参数直接影响着数据库的性能和稳定性。 ##### ...

    oracle 个人学习笔记

    以下是对Oracle数据库一些基础知识的详细解释,主要基于提供的个人学习笔记内容。 **第一节:数据库管理** 1. **创建用户**:`CREATE USER`命令用于创建新的数据库用户,如`CREATE USER username IDENTIFIED BY ...

    韩顺平oracle学习笔记

    韩顺平oracle学习笔记 第0讲:如何学习oracle 一、如何学习oracle Oracle目前最流行的数据库之一,功能强大,性能卓越。学习oracle需要具备一定基础: 1.学习过一门编程语言(如:java ,c) 2.最好学习过一门别的...

    oracle学习笔记之_用户 口令 权限

    ### Oracle学习笔记之用户口令权限 #### 一、解锁锁定用户并设置密码 在Oracle数据库中,可以使用`ALTER USER`命令来解锁或锁定一个用户,并为其设置新的密码。命令格式如下: ``` ALTER USER username IDENTIFIED ...

    oracle 经典学习笔记

    以上内容是Oracle数据库经典学习笔记的缩影,涵盖了Oracle学习的多个重要方面。在实际的学习和应用中,可以通过实践操作、阅读官方文档以及参考其他专业资源,来不断加深对Oracle数据库的理解和熟练度。Oracle数据库...

    oracle第二天学习笔记 

    根据提供的Oracle学习笔记内容,我们可以总结出以下关键知识点: ### Oracle数据库用户管理 #### 用户创建与删除 - 创建用户:`CREATE USER xiaoming IDENTIFIED BY m123;` - `IDENTIFIED BY m123`: 设置密码为m...

    oracle学习笔记 常用命令

    ### Oracle学习笔记:常用命令详解 #### 一、概述 Oracle是一种广泛使用的数据库管理系统,它提供了丰富的命令集来帮助用户管理、查询和维护数据库。本文将详细介绍Oracle中的一些常用命令,包括用户管理、数据...

    oracle个人学习笔记

    ### Oracle个人学习笔记知识点梳理 #### 一、Oracle 用户与权限管理 **1. 创建用户** - 使用管理员账户(如 `sys` 或 `system`)登录后,可以通过以下命令创建新用户: ```sql SQL&gt; create user zhangsan ...

    自己的Oracle学习笔记

    以下是从标题、描述和部分内容中提炼出的Oracle学习笔记的关键知识点: 1. **Oracle基本配置**:Oracle默认监听的端口是1521,例如:`jdbc:oracle:thin:@127.0.0.1:1521:ORACLE`。用户可以使用如`scott/tiger`这样...

    oracle管理学习笔记

    ### Oracle管理学习笔记知识点概述 #### 一、Oracle服务组成 **Oracle服务**由**实例**和**数据库**两部分组成。 - **实例**: 包括后台进程和SGA(共享全局区)。 - **后台进程**: 如DBWn(数据库写入器)、LGWR...

    oracle学习笔记

    ### Oracle学习笔记精要 #### 第一章:Oracle概述与启动方法 - **Oracle简介**:Oracle是由美国甲骨文公司开发的一款关系型数据库管理系统,广泛应用于企业级应用环境中。 - **Oracle版本演变**: - Oracle8i:...

    韩顺平oracle视频笔记

    ### 韩顺平Oracle视频笔记知识点概览 #### 1. Oracle 用户管理 - **概念**:在Oracle数据库中,用户是用来管理访问权限的基本单位。每个用户都可以有自己的模式(schema),其中包含各种对象如表、视图等。 - **创建...

    韩顺平玩转oracle学习笔记

    ### 韩顺平玩转Oracle学习笔记知识点详解 #### 一、Oracle基本使用——基本命令 ##### 连接命令 - **`conn[ect]`**:此命令用于连接到Oracle数据库。语法如下: - `conn 用户名/密码@网络服务名 [as sysdba/...

    oracle学习笔记-基础

    在Oracle学习中,了解数据库的启动、关闭以及其基本操作是非常重要的基础知识。以下是对Oracle数据库启动、关闭及体系结构的详细解释: 1. **Oracle数据库启动与关闭** - **启动数据库**: - 使用`sqlplus`连接...

Global site tag (gtag.js) - Google Analytics