从最早版本到今天,oracle在用户名和密码安全策略方面不断的加以改进,比如,进入11g之后,default profile要求定期进行用户密码
用户名、密码是我们最常见的安全验证策略方法,也是我们在各种应用系统软件中采用的最多的安全保护策略。对oracle而言,以最大限度保护系统数据安全,是不可推卸的天然职责。
从最早版本到今天,oracle在用户名和密码安全策略方面不断的加以改进,比如,进入11g之后,default profile要求定期进行用户密码修改操作,用户密码加密算法强化,以及对dba_users等数据字典视图进行优化改进。今天我们要讨论的是一种oracle的另一种验证策略——os验证策略。
这里,我们要进行一定澄清。最常见的os验证策略,发生在oracle服务器端的机器上。突出的表现是:如果我们通过了操作系统层面验证,也就是登录了服务器本机(remote desktop或者securcrt),,oracle就认为当前用户已经可以通过认证,不需要额外的数据库验证。当然,这要求操作系统用户归属在系统特定用户组,如linux中的oinstall、dba。比如我们经常启动关闭服务器使用的conn /方式,就是这个类型登录验证方法。注意:通过在sqlnet.ora中参数的配置,我们是可以关闭这个特性的。
普通的os验证策略两个特点:一个是服务器本地生效,客户端匿名登录无效。另一个只能登录为管理员sys,不能其他用户。那么,有没有方法实现客户端远程匿名登录,而且实现非sys用户呢?
--------------------------------------------------------------------------------
linux-6-64下安装oracle 12c笔记
在centos 6.4下安装oracle 11gr2(x64)
oracle 11gr2 在vmware虚拟机中安装步骤
debian 下 安装 oracle 11g xe r2
--------------------------------------------------------------------------------
本篇我们就来介绍这个方法。
1、实验环境介绍
我们实验环境为oracle 11g,具体版本为11.2.0.4。服务器为linux版本。
sql> select * from v$version;
banner
---------------------------------------
oracle database 11g enterprise edition release 11.2.0.4.0 - 64bit production
pl/sql release 11.2.0.4.0 - production
core 11.2.0.4.0 production
tns for linux: version 11.2.0.4.0 - production
nlsrtl version 11.2.0.4.0 - production
与本实验相关的参数保持默认状态。
sql> show parameter os
name type value
------------------------------------ ----------- ------------------------------
db_lost_write_protect string none
diagnostic_dest string /u01/app
optimizer_index_cost_adj integer 100
os_authent_prefix string ops$
os_roles boolean false
remote_os_authent boolean false
remote_os_roles boolean false
timed_os_statistics integer 0
默认情况下,我们只能在服务器端实现匿名登录,登录之后直接以最高权限sys的角色出现。
sql> conn / as sysdba
connected.
sql> show user
user is sys
不添加as sysdba登录过程是不允许的。
sql> conn /
error:
ora-01017: invalid username/password; logon denied
下面我们来讨论如何进行os层面验证。
更多详情见请继续阅读下一页的精彩内容: