oracle操作系统OS认证和密码文件认证

1 说明

1.1 常见认证方式

Oracle登录认证方式主要涉及到如何验证用户身份以访问数据库。Oracle数据库提供了多种认证机制来确保数据的安全性和访问控制,每种方式都有其特定的使用场景和安全性考虑。以下是Oracle中常见的登录认证方式:

1、基于操作系统的认证(OS认证)

在基于操作系统的认证中,Oracle依赖底层操作系统的用户身份验证机制。当使用OS认证时,Oracle进程以操作系统用户的身份运行,并继承该用户的权限。这种认证方式通常用于本地连接,特别是在Unix/Linux系统上。

2、密码文件认证(Password File)

密码文件(通常称为“口令文件”)是Oracle提供的一种认证机制,用于在数据库未完全启动或无法访问数据字典时,允许具有SYSDBA或SYSOPER权限的用户进行连接。密码文件通常存放在数据库服务器的特定目录下,并包含加密的用户名和密码信息。

3、数据库认证

数据库认证是最常用的认证方式,它依赖于Oracle数据字典中存储的用户名和密码信息。当用户尝试连接到数据库时,Oracle会查询数据字典以验证提供的用户名和密码是否匹配。普通用户就是使用这种认证方式。与前两种不同的地方在于,在数据库关闭的时候用户不能登录。

4、外部认证

如果配置了os_authent_prefix参数,如默认值为 ops$,当数据库中存在用户 ops$lu9up,且对该用户启用了外部验证。那么在操作系统上以lu9up用户登录成功后,就可以直接键入 sqlplus / ,登录用户是 ops$lu9up,密码由操作系统外部提供,不是数据字典认证。

1.2 数据库管理员身份验证

DBA经常执行一些特殊操作,如关闭数据库、启动数据库、修改参数等。由于只有DBA才能执行这些操作,所以DBA的数据库账号需要一种安全的身份验证方案。

DBA身份验证一般使用上面四种常见的登录认证的前两种:

  • os认证;
  • 口令文件认证。

下面就来着重讲讲这两种认证。

2 基于操作系统的认证(OS认证)

2.1 OSDBA & OSOPER

OSDBA和OSOPER是两个特殊操作系统组,如果操作系统用户属于OSDBA组或者OSOPER组,就能够通过操作系统而不是数据库用户名和密码来认证到数据库,这就是操作系统认证。这两个操作系统组通常被称为OSDBA和OSOPER。熟悉数据库安装的同学都应该有印象,OSDBA和OSOPER这两个组就是在进行操作系统(Linux)配置的时候创建的:

groupadd -g 1001 dba  
groupadd -g 1002 oper

如果操作系统用户属于dba组或者oper组,那么在登录操作系统后,登录数据库的方式为:

  • 如果用户是dba组的成员,并在连接到数据库时指定了as sysdba,那么将以sysdba系统特权连接到数据库。如:sqlplua / as sysdba
  • 如果用户是oper组的成员,并在连接到数据库时指定了as sysoper,那么您将以sysoper系统特权连接到数据库。如:sqlplua / as sysoper
  • 如果用户不是这两个操作系统组的成员,却尝试以SYSDBA或SYSOPER身份连接,那么CONNECT命令将失败。ORA-01017: invalid username/password; logon denied。

下面来试验一下:

创建一个新的操作系统用户lu9up,暂时不添加任何组:

image.png

切换到lu9up用户,尝试指定as sysdba连接数据库

image.png

手动配置一下环境变量,要不然没有sqlplus的路径。

因为lu9up用户不属于dba组,所以OS认证不通过,指定as sysdba连接数据库失败。

给lu9up用户添加dba组,再一次尝试指定as sysdba连接数据库

image.png

3 密码文件认证(Password File)

oracle密码文件用于存储拥有部分特权用户的口令。

是sysdba或者sysoper身份的用户的远程认证密码文件,主要用于sys用户(严格来说是具有sysdba系统权限的用户)的远程登录认证。

这个密码文件的作用就是当数据库未启动的时候,可以通过密码验证的方式登录数据库并进行一系列的mount和open操作。在口令文件丢失或被破坏的情况下,SYS用户仍然可以以本地sysdba身份验证登录到数据库中(OS认证),但不能以sysdba远程登录了。

密码文件通常位于Oracle用户下的$ORACLE_HOME/dbs目录中,并命名为orapw<ORACLE_SID>。在创建数据库时,会生成密码文件,但也可以使用ORAPWD工具手动创建。创建密码文件时,需要指定文件名、SYS账号的口令以及密码文件中可以存放的最大用户数。

在使用密码文件时,需要设置初始化参数REMOTE_LOGIN_PASSWORDFILE来控制其使用状态。这个参数可以设置为EXCLUSIVE、SHARED或NONE,以确定密码文件的使用方式和搜索顺序。

查看初始化参数REMOTE_LOGIN_PASSWORDFILE

image.png

参数值解释:

  • shared:密码文件可供多个数据库实例使用,可以包含sys用户和非sys用户。
  • exclusive:默认值,密码文件只能用于单个数据库实例,可以包含sys用户和非sys用户。
  • none:系统不使用密码文件,特权用户的只能依靠OS认证登录连接数据。

创建一个密码文件

image.png

说明:

  • file:密码文件的文件名为orapworcl;
  • entries:允许5个不同的用户拥有sysdba或者sysoper系统权限;
  • force:覆盖存在的密码文件;
  • password:sys用户的密码。

尝试进行远程登录

image.png

参数REMOTE_LOGIN_PASSWORDFILE当前值为exclusive,允许使用密码文件。当前服务器ip地址为56.3,ssh远程登录到56.2服务器,sqlplus sys/lu9up@192.168.56.3/orcl as sysdba命令连接数据库。

将参数REMOTE_LOGIN_PASSWORDFILE设置为none

image.png

说明:

  • issys_mod=false,说明修改参数不能立刻生效,需要重启后才生效;
  • startup force为强制重启。

参数设置为none后再次远程连接,这次应该是连不上了

image.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/560860.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Vue-鼠标悬浮在缩略图图片上,弹出原图

使用Popover 弹出框实现 <template><div><el-popoverplacement"right"width"400"trigger"hover"><img src"https://fuss10.elemecdn.com/3/63/4e7f3a15429bfda99bce42a18cdd1jpeg.jpeg?imageMogr2/thumbnail/360x36…

三维天地低代码平台实现客户需求的快速交付与灵活定制

— 款合格的低代码平台应具备架构稳定、 产品质量高、 交付速度快、 运维简便的特点, 能快速实现业务需求到系统功能落地。 二十余年来, 北京三维天地科技股份有限公司一直专注于实验室信息化管理 领域, 旗下 SW- LIMS 已在化工、 环保、 食品、 科研等二十余个行业广泛应用,服…

PyTorch and Stable Diffusion on FreeBSD

Stable Diffusion在图像生成领域具有广泛的应用和显著的优势。它利用深度学习和扩散模型的原理&#xff0c;能够从随机噪声中生成高质量的图像。 官网&#xff1a;GitHub - verm/freebsd-stable-diffusion: Stable Diffusion on FreeBSD with CUDA support FreeBSD下难度主要…

docker安装并跑通QQ机器人实践(4)-bs-cqhttp搭建

go-cqhttp&#xff0c;基于 Mirai 以及 MiraiGo 的 OneBot Golang 原生实现&#xff0c;只需简单的配置, 就可以基于 go-cqhttp 使用框架开发&#xff0c;具有轻量, 原生, 高并发, 低占用, 跨平台等特点。 1 go-cqhttp 官网及可执行文件下载链接 go-cqhttp 官网&#xff1a;ht…

项目实践---贪吃蛇游戏的实现

上一章&#xff0c;我们已经分析了贪吃蛇的具体内容&#xff0c;包括它是如何实现的&#xff0c;怎样完成这个项目的&#xff0c;其中就提到了 贪吃蛇有三个代码&#xff1a;一个是测试代码&#xff0c;一个是头文件代码&#xff0c;还有一个是主函数代码。那么今天我们就来讲一…

【大数据】TiDB: A Raft-based HTAP Database

文章目录 数据库知识介绍数据库系统的ACID特性分布式系统和CAP理论关系型数据库与非关系型数据库关系型数据库非关系型数据库 OldSQL、NoSQL、NewSQLOldSQLNoSQLNewSQL OLTP、OLAP、HTAP 前言&#xff1a;为什么选择TiDB学习&#xff1f;pingCAP介绍TiDB介绍TiDB的影响力TiDB概…

什么是大语言模型以及如何构建自己的大型语言模型?

一、关于大语言模型 LLM 对于无数的应用程序非常有用&#xff0c;如果我们自己从头开始构建一个&#xff0c;那我们可以了解底层的ML技术&#xff0c;并可以根据特定需求定制LLM&#xff0c;但是对资源的需求巨大。大型语言模型是一种 ML 模型&#xff0c;可以执行各种自然语言…

《QT实用小工具·二十八》基于qt开发的各种曲线

1、概述 源码放在文章末尾 该项目实现了各种曲线的绘制&#xff0c;下面是项目的demo演示&#xff1a; 项目部分代码如下&#xff1a; #include "frmsmoothcurve.h" #include "ui_frmsmoothcurve.h" #include "smoothcurve.h" #include "…

【ThinkPHP框架教程·Part-01】ThinkPHP6.x框架安装教程

文章目录 一、框架介绍1、框架简介和版本选择2、主要新特性 二、安装步骤1、下载并运行Composer-Setup.exe2、安装TP前切换镜像3、安装稳定版4、测试运行 一、框架介绍 1、框架简介和版本选择 Thinkphp是一种基于php的开源web应用程序开发框架ThinkPHP框架&#xff0c;是免费开…

Axure设计原型图工具 Windows11安装步骤详解

文章目录 目录 文章目录 安装流程 小结 概要安装流程技术细节小结 概要 Axure 是一个流行的原型设计工具&#xff0c;它被用来创建交互式原型、线框图和用户界面设计。Axure 可以帮助用户在项目早期阶段快速制作出可交互的原型&#xff0c;以便进行用户测试、验证设计概念和与…

jetcache fastjson 泛型复杂对象JSON序列 ,反序列化

Jetcache fastjson 泛型复杂对象JSON序列 ,反序列化 默认的FastJson2 序列化存在问题增强FastJson 支持Encode 编码器Decode 解码器 默认的FastJson2 序列化存在问题 默认的序列化不能转换List 中的泛型数据类型, 从缓存拿取的list集合对象数据全部都转换成了JSONObject 增强F…

UE5 把蓝图内的变量和事件暴露给序列使用

在蓝图变量内勾选Expose to Cinematics 事件: 在角色内添加自定义事件 在序列内对着角色的号添加Event,选择Trigger 添加关键帧,然后在关键帧右键添加class,在class下绑定事件

fdisk使用的MBR分区

MBR和GPT分区 MBR分区 MBR分区一般在分区的时候 &#xff0c;MBR分区格式只能支持2TB以下的硬盘容量。 分区最多为4个主分区 或 3个主分区和1个扩展分区&#xff0c;而创建扩展分区后可以分无数个逻辑分区&#xff0c;当然跟磁盘容量有关&#xff0c; 逻辑分区在扩展分区上…

K210基础实验——独立按键中断

前言 学习K210开发板的独立按键和中断功能 一、涉及到的外设资源是K210开发板上的BOOT按键和RGB灯 二、BOOT按键按下&#xff0c;MCU上连接BOOT的IO口变为低电平&#xff0c;松开后为高电平 三、引脚对应关系 BOOT : IO16 RGB灯&#xff1a; R:IO6 G:IO7 B:IO8 四、在…

A-1:树状数组

A-1:树状数组 1.介绍Q1:树状数组解决什么问题&#xff1f;Q2:树状数组的使用1.前置知识&#xff1a;lowbit(x)2.单点修改3.求[1,n]的和4.区间查询5.hh Q3:树状数组是否优化了Q4:上图上例子解释上面说的东西(Important) 2.习题练习 1.介绍 树状数组是一个比较难以理解的高级数据…

Oracle体系结构初探:聊聊REDO

上一篇文章写了undo&#xff08;文章链接&#xff1a;聊聊UNDO&#xff09;&#xff0c;这篇和大家一起聊聊redo。redo如果按照我的傻瓜翻译&#xff0c;意为再次去做、重新去做。Oracle官方对于redo的描述是&#xff1a;记录对数据所做的所有更改&#xff0c;包括未提交和已提…

Electron+Vue3整合 - 开发时状态整合

说明 本文介绍一下 Electron Vue3 的整合的基本操作。实现的效果是 &#xff1a; 1、一个正常的Vue3项目&#xff1b; 2、整合加入 Electron 框架 &#xff1a;开发时 Electron 加载的是开发的vue项目&#xff1b;步骤一&#xff1a;创建vue3项目 常规操作&#xff0c;不再赘…

启动 UE4编辑器报 加载 Plugin 失败

启动 UE4编辑器报 加载 Plugin 失败&#xff0c;报如下错误&#xff1a; Plugin ‘SteamVR’ failer to load because module ‘SteamVR’ could not be found. Please ensure the plugin is properly installed, otherwise consider disabling the plugin for this project. …

yolov5-6.0调测记录

直接运行yolov5-6.0/detect.py&#xff0c;输出如下&#xff1a; image 1/2 C:\Users\dun\Downloads\yolov5-6.0\data\images\bus.jpg: 640x480 4 persons, 1 bus, Done. (0.216s) image 2/2 C:\Users\dun\Downloads\yolov5-6.0\data\images\zidane.jpg: 384x640 2 persons, 2…

单链表的简单应用

目录 一、顺序表的问题及思考 二、链表的概念及结构 三、单链表的实现 3.1 增 3.1.1 尾插 3.1.2 头插 3.1.3 指定位置前插入 3.1.4 指定位置后插入 3.2 删 3.2.1 尾删 3.2.2 头删 3.2.3 指定位置删除 3.2.4 指定位置后删除 3.2.5 链表的销毁 3.3 查 3.4 改 四…