oracle 登录认证

1 简介

Oracle登录认证有两种方式,基于操作系统的登录认证,基于oracle的密码验证。

ORACLE数据库通过sqlnet.ora文件中的参数sqlnet.authentication_services,来控制用户是通过操作系统认证还是通过密码认证进行登录。

而对于拥有sysdba角色的用户,还有一个密码文件可以辅助密码验证。

sqlnet.authentication_services、参数remote_login_passwordfile和密码文件pwd<sid>.ora三者协同作用实现身份认证.

2 authentication_services

Windows环境与Linux/Unix环境有区别:

Windows
  • SQLNET.AUTHENTICATION_SERVICES= (NTS)是基于操作系统验证;
  • SQLNET.AUTHENTICATION_SERVICES= (NONE)是基于Oracle验证;
  • SQLNET.AUTHENTICATION_SERVICES= (NONE,NTS)是二者共存。
  • SQLNET.AUTHENTICATION_SERVICES必须设置为NTS或者ALL才能使用OS认证;不设置或者设置为其他任何值都不能使用OS认证。
Linux/Unix
在linux下,在SQLNET.AUTHENTICATION_SERVICES的值设置为

  • ALL, 为OS验证;
  • NONE或者NTS,都是基于oracle密码验证的。
  • 不设置时,启用OS认证和oracle密码认证。

2.1 不同登录方式的写法

区分以下几种登录方式的区别
  • conn / as sysdba 本机登陆,使用操作系统认证,有无监听都可以
  • conn sys/password as sysdba 本机登陆,使用密码文件认证,有无监听都可以
  • conn sys/password@dbanote as sysdba 兼容OS认证与密码认证。使用密码文件认证,必须有监听,必须有tnsnames.ora,remote_login_passwordfile必须是EXCLUSIVE

3 sysdba角色登录认证

 

3.1 无密本地登录

sqlplus / as sysdba
或者
sqlplus / nolog
conn / as sysdba

以上写法都是无密本地登录。

3.2 密码文件

密码文件是保存拥有sysdba/sysoper等role 的用户和密码信息的文件 。当拥有相关role的用户,想要登录 数据库实例时,如果authentication_services 要求进行密码验证,那么这些用户的密码会通过密码文件加以校验。

创建密码文件的语法如下:

orapwd file=<密码文件> password=<sys用户密码> entries=10 force=y

说明:

  • file——密码文件名(必要)。默认在$Oracle_Home/dbs目录下
  • password——SYS 的密码(必要)
  • entries——DBA和操作员的最大数目(可选)
  • force——是否重写现有的文件(可选)
  • 创建密码文件时,= 号两边是没有空格的。

3.3 是否开启密码文件验证

Oracle提供了一个参数: remote_login_password=NONE|EXCLUSIVE|SHARED .

  • NONE 高级管理员登录时,不使用密码文件验证
  • EXCLUSIVE 高级管理员登录时,使用密码文件验证,且只允许本实例使用该密码文件。
  • shared 高级管理员登录时,使用密码文件验证,且允许多个实例使用该密码文件

3.4 限制sys登录方式

 

3.4.1 不限制

不设置sqlnet.authentication_services,不设置 remote_login_password. 此时,不管是无密登录 、密码登录还是远程登录都可以。

3.4.2 只允许本地密码登录

sqlnet.authentication_services=(ALL) 且 remote_login_password=exclusive 或者shared

3.4.3 只允许远程登录

sqlnet.authentication_services=(NTS) 且 remote_login_password=exclusive 或者shared

Author: halberd.lee

Created: 2019-08-31 Sat 20:42

Validate

Oracle登录认证的更多相关文章

  1. oracle修改登录认证方式

    通过配置sqlnet.ora文件,我们可以修改oracle登录认证方式. SQLNET.AUTHENTICATION_SERVICES=(NTS);基于操作系统的认证 SQLNET.AUTHENTIC ...

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

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

  3. oracle改动登录认证方式

    通过配置sqlnet.ora文件.我们能够改动oracle登录认证方式. SQLNET.AUTHENTICATION_SERVICES=(NTS);基于操作系统的认证 SQLNET.AUTHENTIC ...

  4. oracle登陆认证方式

    转自:http://blog.itpub.net/14359/viewspace-683064/ 案例: 1,发现此时操作系统认证不成功: C:\Users\Administrator.WIN-201 ...

  5. Oracle OS认证 口令文件 密码丢失处理

    Oracle OS认证 口令文件 密码丢失处理 分类: Oracle Basic Knowledge2009-10-19 14:24 5031人阅读 评论(9) 收藏 举报 oracleos数据库sq ...

  6. ELK日志系统:Filebeat使用及Kibana如何设置登录认证

    根据elastic上的说法: Filebeat is a lightweight, open source shipper for log file data. As the next-generat ...

  7. Asp.Net MVC3.0网站统计登录认证的在线人数

    Asp.Net MVC3.0网站统计登录认证的在线人数 前言 对于一个网站来说,统计在线人数是一个很重要的工作.平时也发现很多的网站论坛等都有在线人数的显示.对于一个网站如果在线人数很多,用户看到了这 ...

  8. Oracle登录时提示错误,导致用户无法登录

    Oracle登录时提示错误,导致用户无法登录,错误如下 ------------------------------------------------------------------------ ...

  9. shiro实现APP、web统一登录认证和权限管理

    先说下背景,项目包含一个管理系统(web)和门户网站(web),还有一个手机APP(包括Android和IOS),三个系统共用一个后端,在后端使用shiro进行登录认证和权限控制.好的,那么问题来了w ...

随机推荐

  1. Dart运算符与语句格式

    算术运算符 + 加 - 减 * 乘 / 除 ~/ 取整 % 取余 关系运算符 == 是否等于 != 是否不等于 > 是否大于 < 是否小于 >= 是否大于等于 <= 是否小于等 ...

  2. xgboost&lightgbm调参指南

    本文重点阐述了xgboost和lightgbm的主要参数和调参技巧,其理论部分可见集成学习,以下内容主要来自xgboost和LightGBM的官方文档. xgboost Xgboost参数主要分为三大 ...

  3. Zookeeper与Kafka Kafka

    Zookeeper与Kafka Kafka Kafka SocketServer是基于Java NIO开发的,采用了Reactor的模式(已被大量实践证明非常高效,在Netty和Mina中广泛使用). ...

  4. Base64编码与解码的作用

    1.便于网络传输. 2.不可见性. 3.适合在http,mime协议下快速传输数据. 4 区别于加密,Base64是可以解码的,编码是 公开的,Base 64编码,任何人都可以解码

  5. Mysql导入Excel数据 日期问题 (Excel 与 MySQL 时间戳格式和日期 互转)

    https://blog.csdn.net/ghw455954461/article/details/7247738 今天项目表中需要导入好几w条数据 ,但日期由两个一个是标准时间一个为时间戳,程序中 ...

  6. Math.pow

    一个Math函数,例如:Math.pow(4,3);返回4的三次幂,用法:Math.pow(x,y) x 必需传.底数.必须是数字. y 必需传.幂数.必须是数字. 如果结果是虚数或负数,则该方法将返 ...

  7. filebeat configure

    docker run -d --rm -v ./filebeat.yml:/usr/share/filebeat/filebeat.yml -v /var/log:/var/log  docker.e ...

  8. Mysql判断是否某个字符串在某字符串字段的4种方法

    方法一:like SELECT * FROM 表名 WHERE 字段名 like "%字符%"; 方法二:find_in_set() 利用mysql 字符串函数 find_in_s ...

  9. ACM-ICPC 2017 沈阳赛区现场赛 G. Infinite Fraction Path && HDU 6223(BFS)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6223 参考题解:https://blog.csdn.net/qq_40482495/article/d ...

  10. 2018多校第九场 HDU 6416 (DP+前缀和优化)

    转自:https://blog.csdn.net/CatDsy/article/details/81876341 #include <bits/stdc++.h> using namesp ...