SQL> SHOW PARAMETER OS
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
optimizer_index_cost_adj integer 100
os_authent_prefix string
os_roles boolean FALSE
remote_os_authent boolean FALSE
remote_os_roles boolean FALSE
timed_os_statistics integer 0
--注意一定要把os_authent_prefix的default值OPS$改成null(去掉)
SQL> host hostname
xys
SQL> create user "XYSWCH" identified externally;
用户已创建。
--注意双引号中的机器名用户名一定要大写
SQL> grant dba to "XYSWCH";
授权成功。
SQL> connect /
已连接。
SQL> show user
USER 为 "XYSWCH"
SQL> select username from dba_users;
USERNAME
------------------------------
MGMT_VIEW
SYS
SYSTEM
DBSNMP
SYSMAN
XYSWCH
OUTLN
WMSYS
TSMSYS
DIP
已选择10行。
SQL>
--最后注意:
1、一定要在注册表中加入AUTH_PREFIX_DOMAIN=false
2、一定要为windows登陆用户(这里是wch)设置密码,不设置没测试是否好用
只要上面的各种条件都满足了才能实现外部验证配置成功。
测试环境:
os:windows xp home edition 2002 service pack3
oracle:
SQL> select * from v$version where rownum=1;
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
--====================================
晕死了,刚才又测试了一下恢复参数os_authent_prefix的default值OPS$,居然又好用,真不知道以前测试时犯的是啥毛病:
SQL> alter system set os_authent_prefix=OPS$ scope=spfile;
系统已更改。
SQL> shutdown immediate
ORA-01031: 权限不足
SQL> show user
USER 为 "XYSWCH"
SQL> connect / as sysdba
已连接。
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 167772160 bytes
Fixed Size 1247900 bytes
Variable Size 67110244 bytes
Database Buffers 96468992 bytes
Redo Buffers 2945024 bytes
数据库装载完毕。
数据库已经打开。
SQL> show parameter os
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
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
SQL> connect /
ERROR:
ORA-01017: 用户名/口令无效; 登录被拒绝
警告: 您不再连接到 ORACLE。
--很显然,恢复参数os_authent_prefix=OPS$的default值之后,创建的用户XYSWCHD使用外部验证登陆不了了。
SQL> connect / as sysdba
已连接。
SQL> create user "OPS$XYSWCH" identified externally;
用户已创建。
SQL> grant dba to "OPS$XYSWCH";
授权成功。
SQL> connect /
已连接。
SQL> show user
USER 为 "OPS$XYSWCH"
--===============================================
--再次把参数os_authent_prefix的值设置为null发现用户XYSWCH又可以连接了
SQL> connect / as sysdba
已连接。
SQL> alter system set os_authent_prefix=' scope=spfile;
系统已更改。
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 167772160 bytes
Fixed Size 1247900 bytes
Variable Size 67110244 bytes
Database Buffers 96468992 bytes
Redo Buffers 2945024 bytes
数据库装载完毕。
数据库已经打开。
SQL> connect /
已连接。
SQL> show user
USER 为 "XYSWCH"
SQL>
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/19602/viewspace-1021297/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/19602/viewspace-1021297/