- 浏览: 50849 次
- 性别:
- 来自: 北京
最新评论
Oracle 登录认证相关
- 博客分类:
- Oracle
1.主要几个配置文件
1.sqlnet.ora 中的sqlnet.authentication_services,可选NONE|NTS
2.初始文件initSID.ora 中的remote_login_passwordfile 参数
Remote_login_passwordfile=(NONE)|(EXCLUSIVE)|(SHARED)
NONE:不使用口令文件,操作系统认证;
EXCLUSIVE:口令文件认证方式,但只有一个数据库实例可以使用此文件;
SHARED:口令文件认证方式,可以有多个数据库实例可以使用此文件,但此设置下只有SYS帐号能被识别,即使文件中存在其他用户的信息,也不允许他们以SYSOPER/SYSDBA登录.
修改方法:
1.先关闭数据库
2.在init.ora(默认初始化文件)中修改remote_login_passwordfile 参数
3.从初始化文件启动数据库,如startup pfile=/opt/oracle/admin/$SID/pfile/init.ora
3.密码文件
在本机linux环境中,密码文件名称如orapwr$sid
orapwd file=$ORACLE_HOME/dbs/orapwr$sid password=sys entries=20 force=y;
1).sqlnet.authentication_services=(NTS)
同时Remote_login_passwordfile=(NONE),此时为操作系统认证方式.
当以oracle_dba组下的用户登录进入本地的操作系统后,进行以下操作:
sqlplus /nolog
SQL>conn /assysdba
可以以sysdba身份登录成功,进行数据库方面的操作.
当以远程进行登录时,执行:
sqlplus /nolog
SQL>conn /assysdba
则会显示:
ERROR:ORA-01031:insufficient privileges
即不允许以sysdba身份远程登录系统,这也是OS认证这所以称为本地认证方式的原因.
(2).Sqlnet.authentication_services=(NONE),同时
Remote_login_passwordfile=(EXCLUSIVE)|(SHARED),配合口令文件orapwsid,此时为口令文件认证方式:
当在本地以oracle_dba组下的用户登录进入系统时,进行以下操作:
sqlplus /nolog
SQL>conn /assysdba
则会显示:
ERROR:ORA-01031:insufficient privileges
在本地或远程进行下边的操作:
sqlplus /nolog
SQL>conn sys/密码@服务名assysdba
可以进入系统,也就是说口令文件认证方式允许用户从本地或远程以sysdba身份登录,但必须提供口令字.
(3).Sqlnet.authentication_services=(NTS),同时
Remote_login_passwordfile=(EXCLUSIVE)|(SHARED),配合口令文件orapwsid,此时为操作系统认证和口令文件认证同时起作用:
当在本地以oracle_dba组下的用户登录进入操作系统后,进行下边的操作:
sqlplus /nolog
SQL>conn /assysdba
可以进入系统.即操作系统认证方式登录成功.
当在远程执行:
sqlplus /nolog
SQL>conn sys/密码@服务名assysdba
同时可正常登录到数据库系统,即口令文件认证方式登录成功.
附:
要知道以下几种登陆方式不是一种概念
sqlplus /nolog
1: conn /assysdba 本机登陆,使用操作系统认证,有无监听都可以
2: conn sys/password assysdba 本机登陆,使用密码文件认证,有无监听都可以
3: conn sys/password@dbanote assysdba 可以本机可以远程,使用密码文件认证,必须有监听,必须有tnsnames.ora,remote_login_passwordfile必须是EXCLUSIVE
说明:
从oracle的解释可以知道,SQLNET.AUTHENTICATION_SERVICES=(NTS)是WINDOWS系统专用的,对linux/UNIX是不适用的。
最后做一个简单的总结:
1、在windows下,SQLNET.AUTHENTICATION_SERVICES必须设置为NTS或者ALL才能使用OS认证;不设置或者设置为其他任何值都不能使用OS认证。
2、在linux下,在SQLNET.AUTHENTICATION_SERVICES的值设置为ALL,或者不设置的情况下,OS验证才能成功;设置为其他任何值都不能使用OS认证。
===================
本文环境配置: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用户本地登陆
Sql代码
1.C:\>sqlplus / as sysdba
2.Connected to:
3.Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
4.With the OLAP and Data Mining options
5.SQL>
6.
7.C:\>sqlplus wrong_user/wrong_password as sysdba
8.Connected to:
9.Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
10.With the OLAP and Data Mining options
11.SQL>
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用户本地登陆
Java代码
1.C:\>sqlplus / as sysdba
2.ERROR:
3.ORA-01031: insufficient privileges
4.Enter user-name:
5.
6.C:\>sqlplus wrong_user/wrong_password sysdba
7.ERROR:
8.ORA-01017: invalid username/password; logon denied
9.Enter user-name:
10.
11.C:\>sqlplus sys/change_on_install as sysdba
12.Connected to:
13.Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
14.With the OLAP and Data Mining options
15.SQL>
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会失败,给出用户名和密码就可以成功登陆。
Sql代码
1.C:\>sqlplus / as sysdba
2.ERROR:
3.ORA-01031: insufficient privileges
4.Enter user-name:
5.
6.C:\>sqlplus sys/change_on_install as sysdba
7.Connected to an idle instance.
8.idle>
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>
测试一:删除密码文件。使用用户名和密码登陆,失败!
Sql代码
1.C:\>sqlplus sys/change_on_install as sysdba
2.ERROR:
3.ORA-01031: insufficient privileges
4.Enter user-name:
C:\>sqlplus sys/change_on_install as sysdba
ERROR:
ORA-01031: insufficient privileges
Enter user-name:
测试二:恢复密码文件,设置REMOTE_LOGIN_PASSWORDFILE=none。使用用户名和密码登陆,失败!
Sql代码
1.SQL> alter system set remote_login_passwordfile=none scope=spfile;
2.System altered.
3.
4.C:\>sqlplus sys/change_on_install as sysdba
5.ERROR:
6.ORA-01017: invalid username/password; logon denied
7.Enter user-name:
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代码
1.SQL> alter system set remote_login_passwordfile=exclusive scope=spfile;
2.System altered.
3.
4.C:\>sqlplus sys/change_on_install as sysdba
5.Connected to an idle instance.
6.SQL>
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代码
1.SQL> select * from v$pwfile_users;
2.
3.USERNAME SYSDB SYSOP
4.------------------------------ ------- -------
5.SYS TRUE TRUE
SQL> select * from v$pwfile_users;
USERNAME SYSDB SYSOP
------------------------------ ------- -------
SYS TRUE TRUE
每次使用grant sysdba/sysoper授予新用户特殊权限或是alter user命令修改拥有sysdba/sysoper权限的用户密码的时候,Oracle都会自动的同步密码文件,这样保证在数据库没有打开的情况拥有特殊权限的用户能正常的登陆数据库以进行管理操作。
Sql代码
1.SQL> grant sysdba to logicgate;
2.Grant succeeded.
3.
4.SQL> select * from v$pwfile_users;
5.
6.USERNAME SYSDB SYSOP
7.------------------------------- -------- --------
8.SYS TRUE TRUE
9.LOGICGATE TRUE FALSE
SQL> grant sysdba to logicgate;
Grant succeeded.
SQL> select * from v$pwfile_users;
USERNAME SYSDB SYSOP
------------------------------- -------- --------
SYS TRUE TRUE
LOGICGATE TRUE FALSE
使用orapwd命令可以重建密码文件。
Java代码
1.C:\>orapwd
2.Usage: orapwd file=<fname> password=<password> entries=<users> force=<y/n>
3. where
4. file - name of password file (mandatory),
5. password - password for SYS (mandatory),
6. entries - maximum number of distinct DBA (optional),
7. force - whether to overwrite existing file (optional)
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同步密码文件。
Java代码
1.C:\>orapwd file=%oracle_home%\database\PWDepcit.ora password=temp entries=20 force=y;
2.
3.C:\>sqlplus sys/temp as sysdba
4.Connected to:
5.Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
6.With the OLAP and Data Mining options
7.
8.SQL> select * from v$pwfile_users;
9.
10.USERNAME SYSDB SYSOP
11.------------------------------- -------- --------
12.SYS TRUE TRUE
发表评论
-
awr
2012-01-17 16:02 1175Oracle AWR 手动配置 1.查看当前的AWR保存策略s ... -
Oracle Result Cache
2012-01-12 10:28 2708result cache1.结果集缓存,oracle 11g新 ... -
Oracle 数据库搬迁测试
2011-11-24 09:36 1100Oracle 数据库搬迁测试 测试目的:将物理文件从E盘目录移 ... -
Oracle logMiner
2011-11-21 20:37 944-- oracle 10g 10.2.0.1.0 ... -
Oracle 表访问方式
2011-11-17 12:12 1005SQL> set autotrace traceonly ... -
listener.ora、sqlnet.ora、tnsnames.ora
2011-11-10 11:20 874三个配置文件 listener.ora、sqlnet.ora、 ... -
Oracle cursor
2011-11-01 11:45 2489一 概念 游标是 ... -
Oracle 认证
2011-10-17 14:23 131.主要几个配置文件1.sql ... -
Oracle 命令大全
2011-09-29 09:33 840System Operateion Sql ... -
ORACLE数据库优化设计方案
2011-09-26 14:22 657对于ORACLE数据库的数据 ... -
oracle 分区管理
2011-09-19 10:47 1078oracle分区表管理2009-08-30 12:29作用:将 ... -
Oracle over
2011-09-01 10:14 858Oracle over函数 ... -
Oracle 号段
2011-09-01 09:42 8611.用lead 和lag 可以获取相邻号段的值 SELECT ... -
oracle job
2011-08-08 20:21 895定义oracle job DECLARE V_J ... -
oracle 日期大全
2011-07-05 16:05 47751:取得当前日期是本月的第几周 SQL> select ... -
EXPIMP详解
2011-06-30 11:22 670exp将数据库内的各对象以二进制方式下载成dmp文件, ... -
oracle 手动建库
2011-06-23 14:42 885自己手动创建的一个过程,贴出来以备查看 1.建立ora ... -
ORACLE 中更改客户端日期显示方式
2011-06-23 14:27 882如,按 yyyy-mm-dd 显示如下 ALTER SESS ... -
Oracle 数据类型及存储方式
2011-04-12 15:36 905Oracle 数据类型及存储方式 概述 通过实例,全面而深入的 ... -
ORA-01092 数据库打不开的问题原因(数据库升级不成功的问题)
2011-04-11 16:13 737Oracle10.2.0.1到10.2.0.4升级,升级完成后 ...
相关推荐
Oracle登录认证方式探讨 Oracle登录认证方式探讨
数据库认证大师的考前必备,涉及各个方面的考点,有真题,附答案
课程想以介绍了Oracle认证体系,详细带领同学们进行Oracle实战环境搭建,Oracle体系结构,Oracle数据库创建于安装,管理ASM实力实战,数据并发与控制,实施oracle数据库的审计,数据库的性能管理,备份恢复与数据库...
Oracle认证指南,你可能身为IT行业的一员,拥有这份指南你将会对数据库方面有个明确的道路
Oracle DBA认证方面的资料 oracle DBA 1z0-001 oracle7.3的4本: M03989 Instroduction to Oracle: SQL and PL/SQL Participant Guide Vol. 1 M03990 Instroduction to Oracle: SQL and PL/SQL Participant ...
ORACLE DBA 认证题 比较杂,下载下来整理
Oracle禁用操作系统认证方式登陆及禁止SYS远程登录。Oracle数据库默认允许操作系统登录,尝试登录获取SYS权限将带来极大安全威胁。另外禁止SYS远程登录能有效保证数据库安全。
Oracle 10 认证培训资料
概述:本文只讨论 OS 认证和口令文件认证方式的配置方法,如何配置以及使用OS 认证和...后来看到关于Oracle 口令文件相关资料的时候才豁然开朗:数据库认证信息并不一定存在数据库中的,这点和SQL Server 很是不一样。
Oracle DBA认证题库,内容不多,但是都是历年来常考倒无数学子的问题。希望对冲刺DBA的朋友们有点点帮助。
武汉誉天教育培训机构oracle ocp认证考试题库
Oracle认证介绍 Oracle练习题
Oracle数据库中OCP认证 042认证题库
ORACLE认证考试大纲,考试内容。 与大家分享
Oracle OCP DBA 认证介绍 Oracle OCP DBA 认证介绍
Oracle认证资料,Oracle认证OCP资料题库
Oracle认证考试介绍!考认证的可以看看!能了解需要学什么!
OCP:Oracle数据库认证专家(Oracle Certified Professional)是Oracle公司的Oracle数据库DBA(Database Administrator 数据库管理员)认证课程,通过这个考试, 说明此人可以管理大型数据库, 或者能够开发可以部署...
oracle OCP 043 认证考试题库 oracle OCP 043 认证考试题库
Java-OCP Oracle认证专家:Java SE 11开发人员认证(1Z0-819)