ORACLE数据库通过sqlnet.ora文件中的参数sqlnet.authentication_services,参数文件中的remote_login_passwordfile和口令文件pwdsid.ora三者协同作用实现身份认证.

Sqlnet.authentication_services=(NTS)|(NONE)
NTS:操作系统认证方式,不使用口令文件;
NONE:口令文件认证方式

Remote_login_passwordfile=(NONE)|(EXCLUSIVE)|(SHARED)
NONE:不使用口令文件,操作系统认证;
EXCLUSIVE:口令文件认证方式,但只有一个数据库实例可以使用此文件;
SHARED:口令文件认证方式,可以有多个数据库实例可以使用此文件,但此设置下只有SYS帐号能被识别,即使文件中存在其他用户的信息,也不允许他们以SYSOPER/SYSDBA登录.

(1).sqlnet.authentication_services=(NTS)
同时Remote_login_passwordfile=(NONE),此时为操作系统认证方式.

当以oracle_dba组下的用户登录进入本地的操作系统后,进行以下操作:
sqlplus /nolog
SQL>conn / as sysdba
可以以sysdba身份登录成功,进行数据库方面的操作.

当以远程进行登录时,执行:
sqlplus /nolog
SQL>conn / as sysdba
则会显示:
ERROR:ORA-01031:insufficient privileges
即不允许以sysdba身份远程登录系统,这也是OS认证这所以称为本地认证方式的原因.

(2).Sqlnet.authentication_services=(NONE),同时
Remote_login_passwordfile=(EXCLUSIVE)|(SHARED),配合口令文件PWDsid.ora,此时为口令文件认证方式:

当在本地以oracle_dba组下的用户登录进入系统时,进行以下操作:
sqlplus /nolog
SQL>conn / as sysdba
则会显示:
ERROR:ORA-01031:insufficient privileges

在本地或远程进行下边的操作:
sqlplus /nolog
SQL>conn sys/密码@服务名  as sysdba
可以进入系统,也就是说口令文件认证方式允许用户从本地或远程以sysdba身份登录,但必须提供口令字.

(3).Sqlnet.authentication_services=(NTS),同时
Remote_login_passwordfile=(EXCLUSIVE)|(SHARED),配合口令文件PWDsid.ora,此时为操作系统认证和口令文件认证同时起作用:

当在本地以oracle_dba组下的用户登录进入操作系统后,进行下边的操作:
sqlplus /nolog
SQL>conn / as sysdba
可以进入系统.即操作系统认证方式登录成功.

当在远程执行:
sqlplus /nolog
SQL>conn sys/密码@服务名 as sysdba
同时可正常登录到数据库系统,即口令文件认证方式登录成功.
 
 
附:
要知道以下几种登陆方式不是一种概念
sqlplus /nolog
1:  conn / as sysdba                    本机登陆,使用操作系统认证,有无监听都可以
2:  conn sys/password as sysdba   本机登陆,使用密码文件认证,有无监听都可以
3:  conn sys/password@dbanote as sysdba  可以本机可以远程,使用密码文件认证,必须有监听,必须有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认证。

转载于:https://blog.51cto.com/linuxart/844813

oracle登陆认证方式相关推荐

  1. 有oracle操作系统,Oracle操作系统认证方式

    oracle操作系统认证方式 linux下只需要在sqlnet.ora文件中添加: SQLNET.AUTHENTICATION_SERVICES = (NTS) 就禁止了操作系统认证的登陆方式.如果使 ...

  2. oracle管理认证方式,关于Oracle数据库管理员认证方法简述

    在Oracle中,用户权限分为两种(本文不涉及dba或oper的权限,只讲解普通用户的权限),分别是System Privilege系统权限 和User Table Privilege用户数据表权限. ...

  3. 数据库oracle认证方式,oracle数据库启动流程及登录认证方式详解

    转自:https://www.2cto.com/database/201803/726644.html ■  oracle启动流程-windows下 1) lsnrctl start  (启动监听) ...

  4. oracle密码文件认证,Oracle OS认证与口令文件认证详解

    特殊权限与Oracle登陆认证管理 在开始学Oracle的时候有件事一直让我感觉很奇怪,就是为什么在数据没有起来的时候只要登录到安装Oracle的操作系统中直接用sqlplus / as sysdba ...

  5. oracle用户身份认证,oracle用户身份认证方式

    数据库身份认证 数据库身份认证比较好理解,就是数据库用户口令以加密的方式保存在数据库内部,当用户连接数据库时必须输入用户名和密码,通过数据库认证后才可以登录到数据库.例如,创建一个数据库认证的用户,语 ...

  6. oracle两种用户认证方式

    ORACLE数据库通过sqlnet.ora文件中的参数sqlnet.authentication_services,参数文件中的remote_login_passwordfile和口令文件pwdsid ...

  7. oracle认证方式分为操作系统认证和…

    oracle认证方式分为操作系统认证和口令文件认证2种方式,操作系统认证有时候也叫本地认证.这2种认证我是这么理解的: --操作系统认证:即oracle认为操作系统用户是可靠的,即既然能登陆到操作系统 ...

  8. 第七章 oracle的服务启动顺序、认证方式、

    一  oracle的服务启动顺序 oracle服务启动 1,windows 服务器上 2,linux 服务器上 #  lsnctl  start # 一sysdb身份登录,启动oracle实例 至少需 ...

  9. 手机版QQ登陆的认证方式有哪些?

    手机版QQ登录的认证方式包括: 使用QQ账号和密码登录 使用手机号和短信验证码登录 使用微信账号登录 使用微博账号登录 使用Facebook账号登录 使用手机Touch ID或面部识别登录.

最新文章

  1. 配置linux下oracle sqlplus/rman等历史记录回调功能
  2. 项目复审——Beta阶段
  3. 游侠联机显示无法链接服务器,我的世界用游侠联机时连接不上
  4. 12.13记录//QQDemo示例程序源代码
  5. unix dos mac 文件格式不同导致问题
  6. C++\Python\Qt工作笔记-读取txt文件查找某行是否包含keyWord
  7. poj Alice's Chance(最大流解题)
  8. 使用fiddler获取手机上的数据
  9. sql 线性回归_SQL Server中的Microsoft线性回归
  10. 密码管理系统竞品分析报告
  11. 语音社交app源码,更改ProgressBar颜色(圈圈)
  12. 软件测试面试题整理(三)之工作/项目流程篇
  13. backgroundWorker控件使用笔记
  14. matlab卡方拟合优度检验,卡方拟合优度检验在教学中的应用及Matlab实现_刘泽显...
  15. java-php-python-springboot网上租贸系统计算机毕业设计
  16. 基于JAVA大众点评管理系统计算机毕业设计源码+系统+lw文档+部署
  17. python爬取起点vip小说章节_python 爬取qidian某一页全部小说
  18. TasNet端到端模型
  19. word中删除多余的空白页
  20. 【毕业设计】基于机器学习的餐厅销量预测 -大数据 python

热门文章

  1. OpenCV运行自定义OCR模型
  2. Qt Creator导出QML
  3. QT的QScriptEngine类的使用
  4. C++继承中构造和析构顺序
  5. C语言编写2048小游戏
  6. flutter怎么手动刷新_如何手动刷新或重新加载Flutter Firestore StreamBuilder?
  7. 31-32 python mysql-connector创建数据、crud,where,排序,删除等。PyMSQL驱动,插入操作、查询操作、更新操作、删除操作、执行
  8. maven+springMVC+mybatis+junit详细搭建过程
  9. CSS中让一个div的高度随着另外个一个统计的div的高度变化而变化的代码
  10. 百度百科中关于fwrite的用法说明