Oracle密码文件有什么用

54次阅读
没有评论

共计 4807 个字符,预计需要花费 13 分钟才能阅读完成。

这篇文章将为大家详细讲解有关 Oracle 密码文件有什么用,丸趣 TV 小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

–==============================
— Oracle 密码文件
–==============================
/*

一、密码文件
  作用:主要进行 DBA 权限的身份认证
  DBA 用户:具有 sysdba,sysoper 权限的用户被称为 dba 用户。默认情况下 sysdba 角色中存在 sys 用户,sysoper 角色中存在 system 用户
 
二、Oracle 的两种认证方式;
  1. 使用与操作系统集成的身份验证
  2. 使用 Oracle 数据库的密码文件进行身份认证

三、密码文件的位置
  Linux 下的存放位置:$ORACLE_HOME/dbs/orapw$ORACLE_SID
  即:ORACLE_HOME/dbs/orapw sid
  Windows 下的存放位置:$ORACLE_HOME/database/PWD%ORACLE_SID%.ora

  密码文件查找的顺序
  — orapw sid — orapw— Failure

  两种认证方式:类似于 SQL server 中的 windows 认证和 SQL server 认证

  决定在两个参数中
  1.remote_login_passwordfile = none | exclusive |shared  位于 $ORACLE_HOME/dbs/spfile$ORACLE_SID.ora 参数文件中
  none : 不使用密码文件认证
  exclusive : 要密码文件认证,自己独占使用(默认值)
  shared:要密码文件认证,不同实例 dba 用户可以共享密码文件

  2. $ORACLE_HOME/network/admin/sqlnet.ora
  SQLNET.AUTHENTICATION_SERVICES = none | all | ntf(windows)
  none : 表示关闭操作系统认证,只能密码认证
  all : 用于 linux 或 unix 平台,关闭本机密码文件认证,采用操作系统认证,但远程 异机 可以使用密码文件认证
  nts : 用于 windows 平台

  不同的组合
  1  2
  none  none  sys 用户无论是本机还是远程均不可用

 
四、演示:实验判断当前使用的是操作系统认证还是密码认证
1. 在 sqlnet.ora 中追加 SQLNET.AUTHENTICATION_SERVICES = none

oracle@testdb admin]$ vi sqlnet.ora
SQLNET.AUTHENTICATION_SERVICES = none
~
sqlnet.ora [New] 1L, 39C written   
[oracle@testdb admin]$

– 使用操作系统登陆认证,失败
[oracle@testdb admin]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Mon Dec 25 21:26:22 2017

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

ERROR:
ORA-01017: 用户名 / 口令无效; 登录被拒绝

Enter user-name:
ERROR:
ORA-01017: invalid username/password; logon denied

Enter user-name:
ERROR:
ORA-01017: invalid username/password; logon denied

SP2-0157: unable to CONNECT to ORACLE after 3 attempts, exiting SQL*Plus
[oracle@testdb admin]$

– 改用密码认证登陆,成功。
[oracle@testdb admin]$ sqlplus sys/oracle as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Mon Dec 25 21:27:04 2017

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 – 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL    

 2. 将 SQLNET.AUTHENTICATION_SERVICES 的值改为 all
 
[oracle@testdb admin]$ cat sqlnet.ora
SQLNET.AUTHENTICATION_SERVICES = all
[oracle@testdb admin]$

[oracle@testdb admin]$ cat tnsnames.ora
DBDB =
  (DESCRIPTION =
  (ADDRESS_LIST =
  (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.12)(PORT = 1521))
  )
  (CONNECT_DATA =
  (SERVICE_NAME = DBdb)
  )
  )

testdb =
  (DESCRIPTION =
  (ADDRESS_LIST =
  (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.28)(PORT = 1521))
  )
  (CONNECT_DATA =
  (SERVICE_NAME = DBdb)
  )
  )
[oracle@testdb admin]$
DBDB 是连接到远程的数据库的 tns
testdb 是连接到本机数据库的 tns;

– 使用操作系统登陆认证,成功。
[oracle@testdb admin]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Mon Dec 25 21:36:00 2017

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 – 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL exit   
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 – 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
[oracle@testdb admin]$

– 使用本机密码认证,成功;
[oracle@testdb admin]$ sqlplus sys/oracle as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Mon Dec 25 21:40:35 2017

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 – 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL

– 使用本机密码认证加本机 tns 连接,失败;
[oracle@testdb admin]$ sqlplus sys/oracle@testdb as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Mon Dec 25 21:36:17 2017

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

ERROR:
ORA-12641: Authentication service failed to initialize

Enter user-name:
ERROR:
ORA-01017: invalid username/password; logon denied

– 使用客户端远程密码连接方式连接本机,成功:
C:\Users\Administrator sqlplus system/oracle@192.168.56.28/DBdb

SQL*Plus: Release 11.2.0.1.0 Production on 星期二 12 月 26 10:16:53 2017

Copyright (c) 1982, 2010, Oracle.  All rights reserved.

连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 – 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL

– 使用 tns 连接到其他数据库的 tns, 成功;
[oracle@testdb admin]$ sqlplus sys/oracle@DBDB as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Mon Dec 25 21:36:43 2017

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 – 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL

五、密码文件的建立:orapwd */

[oracle@testdb ~]$ orapwd
Usage: orapwd file= fname password= password entries= users force= y/n
  where
  file – name of password file (mand), /* 密码文件的名字 orapw sid */
  password – password for SYS will be prompted if not specified at command line,  /*sys 用户的密码 */
  entries – maximum number of distinct DBA (optional), /* 可以有多少个 sysdba,sysoper 权限用户放到密码文件中去,去掉重复记录 */
  /* 注意 entries 中存放的个数但不是实际个数,这个是二进制数据 */  
  force – whether to overwrite existing file (optional),/*10g 新增的参数,默认值为 n ,y 表示允许覆盖 */
  ignorecase – passwords are case-insensitive (optional),
  nosysdba – whether to shut out the SYSDBA logon (optional Database Vault only).
 
 There must be no spaces around the equal-to (=) character.

关于“Oracle 密码文件有什么用”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-17发表,共计4807字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)