Oracle数据库N层认证详解:代理认证与CLIENT_IDENTIFIER
36 浏览量
更新于2024-09-03
收藏 30KB DOC 举报
Oracle数据库的N层认证是指在多层架构(通常包括客户端、中间层和数据库服务器)中确保用户身份的过程,以增强安全性并适应Web应用程序的需求。在开发过程中,由于Web用户通常通过用户名与应用程序交互,但在数据库层面,这些用户可能需要以更高权限的账户进行连接。为了解决这个问题,Oracle提供了两种主要的N层认证方法:
1. **代理认证 (Proxy Authentication)**:
- 代理认证允许中间层(如Web服务器)使用“普通”或“应用程序”级别的账户对数据库进行身份验证,然后代表真实的用户创建轻量级会话。
- 这是通过提交用户的辨认名(Distinguished Name, DN),即一个X.509证书,或者全局唯一用户名实现的。例如,如果用户Kyle需要通过拥有admin角色的中间层(例如webapp账户)连接数据库,管理员会授予相应的权限,如`ALTER USER Kyle GRANT CONNECT THROUGH webapp WITH ROLE admin`。
- 在实际应用中,代码会通过`InitialContext`查找数据库连接池,并在获取连接后使用代理会话建立过程,如设置用户名为`String userName = request.getRemoteUser()`,然后根据用户名创建代理会话。
2. **应用程序上下文参数 CLIENT_IDENTIFIER**:
- Oracle9i及以上版本提供了预定义的应用程序上下文(Application Context)机制,其中USERENV是一个常用的命名空间,包含了用户会话的详细信息,包括预定义的属性CLIENT_IDENTIFIER。
- 这个参数可以用来传递用户身份信息,使得应用程序能够动态地将客户端的身份信息传递给数据库,即使在没有直接提供用户名的情况下也能识别出具体的用户。
这两种方法的主要目的是在不牺牲性能的前提下,确保在多层架构中每个用户都有自己的身份标识,从而实现基于角色的访问控制(Role-Based Access Control, RBAC)和细粒度的安全策略。通过N层认证,Oracle数据库能更好地支持Web应用程序的安全性和审计功能,防止未经授权的访问和数据泄露。
2021-10-10 上传
2021-09-21 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
weixin_38734276
- 粉丝: 11
- 资源: 901
最新资源
- node_ccs:节点进程与 Google GCM 云连接服务器(XMPP)通信
- 红外小目标数据集.zip
- Fibonacci:用于计算斐波那契的android程序是对createev的一次面试
- CSE559A_Project
- 篮球背景的篮球比赛PPT模板
- just-express:用ReactJS编写的实时调查平台。 尚未部署
- VBIC卡管理系统(源代码+系统+中英文翻译+答辩PPT).zip
- 易语言-文本语音转换支持库2.0#0版
- 在线录音机-crx插件
- pentaho-authentication-ext:Pentaho商业智能服务器的身份验证扩展机制[警告! 该项目已移至https
- 红色简洁中石油工作汇报PPT模板
- my-exemplo-site
- VB大学社团管理系统(源代码+系统+开题报告+答辩PPT).zip
- 集装箱-crx插件
- leetcode答案-LeetCode:力码
- DHT11温湿度传感器编程资料.zip