1.首先确定初始化参数
os_authent_prefix的值,默认为ops$
SQL> show parameter os_authent_prefix
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
os_authent_prefix string ops$
2.如果需要允许远程操作系统用户验证的话,还需修改remote_os_authent参数值,默认False。
Oracle不推荐在远程客户端上使用操作系统验证,因为客户端验证时不是通过服务器上的操作系统用户来验证,而是使用客户端自己怕操作系统来进行windows验证,这样,客户端可以采用建立对应的windows机器名和用户名的方式来欺骗Oracle的操作系统验证。另外启用此参数后,在启动实例时会提示 ORA-32004错误,表示启用了不正确的初始化参数,建议禁用此参数。
SQL> show parameter remote_os_authent
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
remote_os_authent boolean TRUE
3.另外一个相关远程登录的参数 remote_login_passwordfile,使用默认值EXCLUSIVE即可。
查看是否允许远程登录使用口令文件进行身份验证
? SHARED 一个或多个数据库可以使用口令文件。可以包含 SYS 或者非 SYS 的口令文件。
? EXCLUSIVE 新版本和 SHARED 功能一致。
? NONE 不允许远程使用口令文件验证,如远程用 SYS 账号连接 Oracle 将会报错。
SQL> show parameter remote_login_passwordfile
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
remote_login_passwordfile string EXCLUSIVE
4.配置SQLNET.ORA文件,确保 sqlnet.authentication_services= (NTS)有此认证方式
参数names.directory_path= (TNSNAMES,ONAMES,HOSTNAME) 默认值:TNSNAMES,ONAMES,HOSTNAME
表明解析客户端连接时所用的主机字符串的方式
TNSNAMES表示采用TNSNAMES.ORA文件来解析
ONAMES表示Oracle使用自己的名称服务器(Oracle Name Server)来解析,目前Oracle建议使用轻量目录访问协议LDAP来取代ONAMES
HOSTNAME表示使用host文件,DNS,NIS等来解析
参数sqlnet.authentication_services= (NONE,NTS) 默认值:NONE
表明用户连接Oracle服务器时使用哪种验证方式,两种方式可并用
? NONE:作用是不允许通过 OS 系统用户登录数据库,需要提供用户名及密码
? ALL:作用是允许所有的登录方式
? NTS:作用是允许本地操作系统用户认证
5.建立windows的用户,隶属Users组,步骤略
6.启动 sql*plus,以sys身份登录oracle
7.以外部验证方式创建用户ops$edward
SQL> create user ops$edward identified by externally;
User created.
8.授权ops$edward相应权限
SQL> grant connect,resource to ops$edward;
Grant succeeded.
9.切换到windows上,以edward用户登录windows,且打开 sql*plus连接并测试是否能成功登录
阅读(2428) | 评论(0) | 转发(0) |