【赵渝强老师】Oracle数据库的用户认证方式

本文涉及的产品
RDS AI 助手,专业版
PolarClaw,2核4GB
RDSClaw,2核4GB
简介: 本文详解Oracle数据库用户认证机制,涵盖密码验证、全局验证和外部验证三种方式,并重点演示DBA管理员的OS认证实战:通过操作系统组权限实现免密登录,验证优先级及配置要点。

b443.png

Oracle数据库支持多种用户认证的方式,例如:密码认证、生物统计学验证、证书验证和标记验证,而在认证管理员用户和普通用户时又有一定区别。视频讲解如下:


下面分别进行介绍。


一、 验证数据库用户的方式

用户、设备或其它实体的身份要使用数据库中数据、资源或者调用数据库的应用程序,需要进行身份的验证。通过对该身份进行验证可建立一种信任关系,从而可进一步执行交互式操作。通过验证可将访问和操作与特定的身份联系起来,从而实现操作的可靠性。完成验证后,验证流程可允许或限制该实体许可的访问和操作的级别。创建用户时,必须确定要使用的验证方法,以后可修改此方法。Oracle支持三种不同的用户验证方式:密码口令验证、全局验证和外部验证。


  • 密码口令验证

该认证方式又称为Oracle数据库验证,创建的每一个用户都有一个关联密码口令。当用户尝试登陆数据库时,必须提供这个密码口令。数据库管理员可以在设置用户密码口令时,可以使其立即失效。这样会强制用户在首次登录后更改密码口令。

密码口令认证是最常用的数据库用户验证方式。


  • 全局验证

通过全局验证可以使用生物统计学、x509 证书、标记设备和Oracle Internet Directory来识别用户。使用这种方式的认证,需要外部设备的支持。


  • 外部验证

外部验证是通过使用宿主机的操作系统进行验证。用户在登陆Oracle数据库时,可以不提供用户名和密码口令而直接连接到Oracle数据库。Oracle数据库的SYS用户采用的就是这样的认证方式。使用外部验证时,数据库依赖于宿主机的操作系统或网络提供的验证服务来限制对数据库帐户的访问。


要使用Oracle数据库的外部认证,需要设置OS_AUTHENT_PREFIX的初始化参数,此参数的默认值为ops$。Oracle数据库会在每个用户的操作系统帐户名之前添加此前缀。当用户尝试建立连接时,Oracle数据库会将带有该前缀的用户名与数据库中的Oracle用户名进行比较。如果数据库中存在这样的一个对应用户,则Oracle允许该用户建立连接。


下面通过一个具体的示例来演示如何使用Oracle的外部认证登录数据库。

由于从Oracle 12c开始引入了容器数据库,建议使用12c以前的版本来进行测试。这里将使用Oracle 11gR2的版本来验证数据库用户的外部验证。


(1)查看当前CentOS操作系统的用户。

whoami
# 输出的信息如下:
oracle


(2)使用SYS用户登录Oracle,并查看初始化参数os_authent_prefix。

SQL> show parameter os_authent_prefix
NAME             TYPE  VALUE
--------------------------------------- ---------- -----------------
os_authent_prefix        string  ops$


(3)创建以ops$前缀开头的本地用户

SQL> create user ops$oracle identified by externally;


(4)给ops$oracle用户授权允许它登录并使用数据库

SQL> grant connect,resource to ops$oracle;


(5)直接使用sqlplus登录数据库。

sqlplus /


(6)查看当前登录的用户信息。

SQL> show user
# 输出的信息如下:
USER is "OPS$ORACLE"


二、 【实战】数据库管理员的认证


默认情况下,在UNIX和Linux操作系统中Oracle数据库管理员属于DBA的操作系统组,该组中的用户具有创建和删除数据库文件所需的权限。如果当前操作系统的用户就是Oracle数据库管理员,那么登录数据库可以直接使用操作系统验证。此时,用户不需要提供的用户名和密码口令直接进行登录。

操作系统验证优先于密码口令验证。特别是,如果您是操作系统中 OSDBA 或 OSOPER 组的成员,而且以 SYSDBA 或 SYSOPER 身份进行连接,则会使用关联的管理权限为您建立连接,不管您指定的用户名和口令是什么。


下面通过具体的步骤来验证数据库管理员的认证登录方式。


(1)查看当前操作系统的用户名。

whoami
# 输出的信息如下:
oracle


(2)查看当前操作系统用户的组信息。

cat /etc/group | grep oracle
# 输出的信息如下:
dba:x:1001:oracle
asmdba:x:1002:oracle
backupdba:x:1003:oracle
dgdba:x:1004:oracle
kmdba:x:1005:oracle
racdba:x:1006:oracle
oper:x:1007:oracle


(3)使用管理员登录数据库时,不提供用户名和密码。登录后查看当前登录的用户。

sqlplus / as sysdba
SQL> show user
# 输出的信息如下:
USER is "SYS"


(4)使用管理员登录数据库时,提供正确的用户名,但密码是错误的。登录后查看当前登录的用户。

sqlplus sys/asjfklf as sysdba
SQL> show user
# 输出的信息如下:
USER is "SYS"


(5)使用管理员登录数据库时,提供错误的用户名和密码。登录后查看当前登录的用户。

sqlplus afsalkj/fdsaflka as sysdba
SQL> show user
# 输出的信息如下:
USER is "SYS"


(6)将用户oracle从操作系统的dba组中删除。即:从文件/etc/group中删除下面的语句。

dba:x:1001:oracle


(7)重复第(3)步到第(5)步的操作,此时将发现无法登录Oracle数据库。

相关文章
|
23小时前
|
人工智能 JSON 供应链
畅用7个月无影 JVS Claw |手把手教你把JVS改造成「科研与产业地理情报可视化大师」
LucianaiB分享零成本畅用JVS Claw教程(学生认证享7个月使用权),并开源GeoMind项目——将JVS改造为科研与产业地理情报可视化AI助手,支持飞书文档解析、地理编码与腾讯地图可视化,助力产业关系图谱构建。
23254 1
畅用7个月无影 JVS Claw |手把手教你把JVS改造成「科研与产业地理情报可视化大师」
|
2天前
|
人工智能 API 开发工具
Claude Code国内安装:2026最新保姆教程(附cc-switch配置)
Claude Code是我目前最推荐的AI编程工具,没有之一。 它可能不是最简单的,但绝对是上限最高的。一旦跑通安装、接上模型、定好规范,你会发现很多原本需要几小时的工作,现在几分钟就能搞定。 这套方案的核心优势就三个字:可控性。你不用依赖任何不稳定服务,所有组件都在自己手里。模型效果不好?换一个。框架更新了?自己决定升不升。 这才是AI时代开发者该有的姿势——不是被动等喂饭,而是主动搭建自己的生产力基础设施。 希望这篇保姆教程,能帮你顺利上车。做出你自己的作品。
Claude Code国内安装:2026最新保姆教程(附cc-switch配置)
|
10天前
|
缓存 人工智能 自然语言处理
我对比了8个Claude API中转站,踩了不少坑,总结给你
本文是个人开发者耗时1周实测的8大Claude中转平台横向评测,聚焦Claude Code真实体验:以加权均价(¥/M token)、内部汇率、缓存支持、模型真实性及稳定性为核心指标。
3976 23
|
4天前
|
人工智能 缓存 BI
Claude Code + DeepSeek V4-Pro 真实评测:除了贵,没别的毛病
JeecgBoot AI专题研究 把 Claude Code 接入 DeepSeek V4Pro,跑完 Skills —— OA 审批、大屏、报表、部署 5 大实战场景后的真实体验 ![](https://oscimg.oschina.net/oscnet/up608d34aeb6bafc47f
2229 4
Claude Code + DeepSeek V4-Pro 真实评测:除了贵,没别的毛病
|
5天前
|
人工智能 JSON BI
DeepSeek V4 来了!超越 Claude Sonnet 4.5,赶紧对接 Claude Code 体验一把
JeecgBoot AI专题研究 把 Claude Code 接入 DeepSeek V4Pro 的真实体验与避坑记录 本文记录我将 Claude Code 对接 DeepSeek 最新模型(V4Pro)后的真实体验,测试了 Skills 自动化查询和积木报表 AI 建表两个场景——有惊喜,也踩
2636 8
|
22天前
|
人工智能 自然语言处理 安全
Claude Code 全攻略:命令大全 + 实战工作流(建议收藏)
本文介绍了Claude Code终端AI助手的使用指南,主要内容包括:1)常用命令如版本查看、项目启动和更新;2)三种工作模式切换及界面说明;3)核心功能指令速查表,包含初始化、压缩对话、清除历史等操作;4)详细解析了/init、/help、/clear、/compact、/memory等关键命令的使用场景和语法。文章通过丰富的界面截图和场景示例,帮助开发者快速掌握如何通过命令行和交互界面高效使用Claude Code进行项目开发,特别强调了CLAUDE.md文件作为项目知识库的核心作用。
19318 61
Claude Code 全攻略:命令大全 + 实战工作流(建议收藏)
|
2天前
|
SQL 人工智能 弹性计算
阿里云发布 Agentic NDR,威胁检测与响应进入智能体时代
欢迎前往阿里云云防火墙控制台体验!
1173 2