使用Oracle外部身份认证有一个操作系统用户和数据库映射的过程。将操作系统用户映射成ORACLE用户需要加的前缀,规则是:初始化参数 OS_AUTHENT_PREFIX+操作 系统用户=ORACLE用户。
是否启用外部身份认证是由 REMOTE_OS_AUTHENT初始化参数控制的,默认为FALSE。
下面我们通过一个实验来讨论如何使用Oracle外部身份认证:
在服务器端做如下操作:
[oracle@odd ~]$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on Mon Apr 21 08:58:19 2014
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
SQL> show parameter auth
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
os_authent_prefix string ops$
remote_os_authent boolean TRUE
SQL> create user ops$liubinglin identified externally;
User created.
SQL> grant connect to ops$liubinglin;
Grant succeeded.
ops$liubinglin用户对应的客户端操作系统用户名为LIUBINGLIN。
下面是在我的Windows笔记本上的客户端操作:
C:\Users\LIUBINGLIN>tnsping orcl
TNS Ping Utility for 32-bit Windows: Version 11.2.0.3.0 - Production on 21-4月 -2014 17:00:35
Copyright (c) 1997, 2011, Oracle. All rights reserved.
已使用的参数文件:
E:\app\product\11.2.0\db_1\network\admin\sqlnet.ora
已使用 TNSNAMES 适配器来解析别名
尝试连接 (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.101)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl)))
OK (10 毫秒)
ORCL本地服务名是连接到服务器数据库的名称。
C:\Users\LIUBINGLIN>sqlplus /@orcl
SQL*Plus: Release 11.2.0.3.0 Production on 星期一 4月 21 17:00:43 2014
Copyright (c) 1982, 2011, Oracle. All rights reserved.
访问 PRODUCT_USER_PROFILE 时出错
警告: 未加载产品用户概要文件信息!
您需要将 PUPBLD.SQL 作为 SYSTEM 运行
连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
SQL> show user
USER 为 "OPS$LIUBINGLIN"
SQL>
成功登录数据库服务器;如果执行sqlplus /命令表示使用本地操作系统认证。
如果使用的是pl/sql工具,如下图所示:
不需要输入用户名和密码,只需要将Database选择为ORCL即可以OPS$LIUBINGLIN的身份登录数据库。
使用Oracle外部身份认证一定要从安全性的角度权衡利弊。
--end--
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/23135684/viewspace-1146272/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/23135684/viewspace-1146272/