Oracle用户验证之外部验证

转载:http://blog.itpub.net/25264937/viewspace-689344

1、概述

Oracle外部验证又称操作系统验证。用户可以在不输入用户名、密码的情况下,连接到数据库。使用外部验证时,依赖于操作系统或者网络验证服务来限制用户数据库的访问。
启用外部验证,需要在参数文件中,设置OS_AUTHENT_PREFIX参数。OS_AUTHENT_PREFIX定义了一个前缀,认为ops$。Oracle数据库会在每个操作系统用户名前,添加此前缀。
如:操作系统用户为user1,则Oracle数据库添加前缀后的用户名为ops$user1。
当操作系统用户user1尝试与数据库建立连接时,Oracle数据库会检查数据中是否存在一个对应的数据库用户ops$user1。如果存在,则允许建立连接。
2、实例
OS:redhat AS 4.8
DB:Oracle 10g

sql> show parameters os_authent
NAME TYPE VALUE
-------------------------------- ----------- -------------------
os_authent_prefix string ops$
remote_os_authent boolean FALSE
前缀为ops$,因此,在Oracle数据库中建立系统用户Oracle对应的数据库用户,并通过identified externally子句指定使用外部验证。
sql> create user ops$oracle identified externally;
User created.
sql> grant connect to ops$oracle;
Grant succeeded.
sql> exit
disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning,OLAP and Data Mining options

当前用户为oracle。
[oracle@oraserver ~]$ id
uid=1001(oracle) gid=1002(oinstall) groups=1001(dba),1002(oinstall)

使用oracle用户登陆(外部验证)
[oracle@oraserver ~]$ sqlplus /
sql*Plus: Release 10.2.0.1.0 - Production on Mon Mar 14 10:17:33 2011
copyright (c) 1982,2005,Oracle. All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning,OLAP and Data Mining options

查看当前用户
sql> show user;
USER is "OPS$ORACLE"
sql>

相关文章

Java Oracle 结果集是Java语言中处理数据库查询结果的一种方...
Java AES和Oracle AES是现代加密技术中最常使用的两种AES加密...
Java是一种广泛应用的编程语言,具备可靠性、安全性、跨平台...
随着移动互联网的发展,抽奖活动成为了营销活动中不可或缺的...
Java和Oracle都是在计算机领域应用非常广泛的技术,他们经常...
Java 是一门非常流行的编程语言,它可以运行于各种操作系统上...