我是靠谱客的博主 无聊故事,最近开发中收集的这篇文章主要介绍oracle数据库密码认证,oracle操作系统认证以及密码文件认证,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Oracle的操作系统身份认证

oraclelogin数据库远程登录authenticationos

sqlnet.authentication_services=(NTS),在$ORACLE_HOME/network/admin/sqlnet.ora中

NTS特指的是windows系统,或者设为all,这两种情况都允许操作系统认证。

如果在unix下如果没有设置sqlnet.authentication_services,默认就是操作系统认证!或者设为all也允许操作系统认证。

参数SQLNET.AUTHENTICATION_SERVICES=(NONE,NTS)表明用户连接Oracle服务器时使用哪种验证方式

NONE表示Oracle数据库身份验证,NTS表示操作系统身份验证,两种方式可以并用。

数据库用sysdba登录的验证有两种方式,一种是通过os认证,一种是通过密码文件验证;登录方式有两种,一种是在数据库主机直接登录(用os认证的方式),一种是通过网络远程登录;需要设置的参数有两个,一个是SQLNET.AUTHENTICATION_SERVICES,一个是REMOTE_LOGIN_PASSWORDFILE。

os认证:如果启用了os认证,以sysdba登录,那么我们只要用oracle软件的安装用户就能登录:sqlplus“/assysdba”。如果我们要禁用os认证,只利用密码文件登录,我们首先要有一个密码文件:

orapwdfile=C:/oracle/product/10.2.0/db_1/database/PWDoralocal.orapassword=maximoentries=10;

然后我们要把$ORACLE_HOME/network/admin/sqlnet.ora中设置:

SQLNET.AUTHENTICATION_SERVICES=none

注意一下,密码文件只在数据库启动的时候加载进去,一旦加载进去,密码文件就脱离了oracle管理,所以我们用orapwd新建密码文件后,里面指定的密码要在数据重启后才能生效:

至此,我们已经实现不用os认证(sqlplus“/assysdba”的方式登录不了)。那么我们怎么限制网络方面利用sysdba远程登录呢?我们可以设置初始化文件中的REMOTE_LOGIN_PASSWORDFILE=none。

注意,当REMOTE_LOGIN_PASSWORDFILE=none时,这个参数生效需要重启数据库,并且,一旦启用这个参数,将使用操作系统认证,不使用口令文件。因此如果REMOTE_LOGIN_PASSWORDFILE=none且SQLNET.AUTHENTICATION_SERVICES=none这个时候数据库是无法登录的。

altersystemsetREMOTE_LOGIN_PASSWORDFILE=nonescope=spfile;

(1)REMOTE_LOGIN_PASSWORDFILE=none且SQLNET.AUTHENTICATION_SERVICES=none:

oracle安装用户本地sqlplus“/assysdba”无法登录

非oracle安装用户本机sqlplus“sys/change_on_installassysdba”无法登录

非oracle安装用户远程sqlplus“/assysdba_on_install@sidassysdba”无法登录

(2)REMOTE_LOGIN_PASSWORDFILE=exclusive且SQLNET.AUTHENTICATION_SERVICES=none:

oracle安装用户本地sqlplus“/assysdba”无法登录

非oracle安装用户本机sqlplus“sys/change_on_installassysdba”能登录

非oracle安装用户远程sqlplus“/assysdba_on_install@sidassysdba”能登录

(3)REMOTE_LOGIN_PASSWORDFILE=none且SQLNET.AUTHENTICATION_SERVICES=(NTS):

oracle安装用户本地sqlplus“/assysdba”能登录

非oracle安装用户本机sqlplus“sys/change_on_installassysdba”无法登录

非oracle安装用户远程sqlplus“/assysdba_on_install@sidassysdba”无法登录

(4)REMOTE_LOGIN_PASSWORDFILE=exclusive且SQLNET.AUTHENTICATION_SERVICES=(NTS):

oracle安装用户本地sqlplus“/assysdba”能登录

非oracle安装用户本机sqlplus“sys/change_on_installassysdba”能登录

非oracle安装用户远程sqlplus“/assysdba_on_install@sidassysdba”能登录

OracleREMOTE_LOGIN_PASSWORDFILE参数

设置初始化参数REMOTE_LOGIN_PASSWORDFILE:

在Oracle数据库实例的初始化参数文件中,此参数控制着密码文件的使用及其状态。它可以有以下几个选项:

1、NONE:指示Oracle系统不使用密码文件,特权用户的登录通过操作系统进行身份验证;

2、EXCLUSIVE:指示只有一个数据库实例可以使用此密码文件。只有在此设置下的密码文件可以包含有除SYS以外的用户信息,即允许将系统权限SYSOPER/SYSDBA授予除SYS以外的其他用户。此设置oracle9i中为缺省值。有朋友说是shared,其实不然.

3、SHARED:指示可有多个数据库实例可以使用此密码文件。在此设置下只有SYS帐号能被密码文件识别,即使文件中存有其他用户的信息,也不允许他们以SYSOPER/SYSDBA的权限登录。

----在REMOTE_LOGIN_PASSWORDFILE参数设置为EXCLUSIVE、SHARED情况下,Oracle系统搜索密码文件的次序为:在系统注册库中查找ORA_SID_PWFILE参数值(它为密码文件的全路径名);若未找到,则查找ORA_PWFILE参数值;若仍未找到,则使用缺省值ORACLE_HOME/DATABASE/PWDSID.ORA;其中的SID代表相应的Oracle数据库系统标识符。

总结

$ORACLE_HOME/network/admin/sqlnet.ora中的AUTHENTICATION_SERVICES参数:

1、在windows下,SQLNET.AUTHENTICATION_SERVICES必须设置为NTS或者ALL才能使用OS认证;不设置或者设置为其他任何值都不能使用OS认证。

2、在linux下,在SQLNET.AUTHENTICATION_SERVICES的值设置为ALL,或者不设置的情况下,OS验证才能成功;设置为其他任何值都不能使用OS认证。

spfile中的REMOTE_LOGIN_PASSWORDFILE参数:

1、值为exclusive时,远程能作为sysdba身份登录

2、值为none时,以sysdba身份无法登录

------------------------------------------------

----------------------------------------------------

oracle的sys用户密码怎么修改

一、忘记除SYS、SYSTEM用户之外的用户的登录密码。

用SYS(或SYSTEM)用户登录:CONNSYS/PASS_WORDASSYSDBA;

使用如下语句修改用户的密码:ALTERUSERuser_nameIDENTIFIEDBY"newpass";

注意:密码不能全是数字。并且不能是数字开头。否则会出现:ORA-00988:口令缺失或无效

二、忘记SYS用户,或者是SYSTEM用户的密码。

如果是忘记SYSTEM用户的密码,可以用SYS用户登录。然后用ALTERUSER命令修改密码:

CONNSYS/PASS_WORDASSYSDBA;

ALTERUSERSYSTEMIDENTIFIEDBY"newpass";

如果是忘记SYS用户的密码,可以用SYSTEM用户登录。然后用ALTERUSER命令修改密码。

CONNSYSTEM/PASS_WORD;

ALTERUSERSYSTEMIDENTIFIEDBY"newpass";

三、如果SYS,SYSTEM用户的密码都忘记或是丢失。

可以使用ORAPWD.EXE工具修改密码。

开始菜单->运行->输入‘CMD’,打开命令提示符窗口,输入如下命令:

orapwdfile=D:oracle10gdatabasepwdctcsys.orapassword=newpass

这个命令重新生成了数据库的密码文件。密码文件的位置在ORACLE_HOME目录下的database目录下。

这个密码是修改sys用户的密码。除sys其他用户的密码不会改变。

不过Oracle提供了两种验证方式,一种是OS验证,另一种密码文件验证方式,如果是第一种方式用以下方法修改密码:

sqlplus/nolog;

connect/assysdba

alterusersysidentifiedby;

alterusersystemidentifiedby;

如果是第二种方法就用上述方式修改,也可以下方法修改密码:

orapwdfile=pwdxxx.orapassword=你设定的新密码entries=10

设定完后,重新启动服务,再次登陆就可以了。

oracle11g

在本机安装完Oracle以后,不记得sys用户的密码了,采用如下方法可以修改密码:

1.打开cmd,输入sqlplus/nolog,回车;输入“conn/assysdba”;输入“alterusersysidentifiedby新密码”,注意:新密码最好以字母开头,否则可能出现错误Ora-00988。有了这个方法后,只要自己对oracle服务器有管理员权限,不记得密码的时候就可以随意修改密码了。

2.在命令行执行如下命令:sqlplus“/@服务名assysdba”,然后在sqlplus中alterusersysidentifiedby新密码;

alterusersystemidentifiedby新密码;

3.运行到C盘根目录

1)输入:SETORACLE_SID=你的SID名称

2)输入:sqlplus/nolog

3)输入:connect/assysdba

4)输入:alertusersysidentifiedbysys

5)输入:alertusersystemidentifiedbysystem

6)更改完成,密码是Oracle数据库初始密码

4.首先,在CMD下输入SQLPLUS/NOLOG然后再在出来的界面中打入CONN/ASSYSDBA,这样就会以本地系统登录的用户为信任用户进入数据库的操作.解决这个问题的方式有两种,一个是:ALTERUSER(USERNAME)IDENTIFIEDBY“密码”;这个是可以改变USERNAME的密码.当然这个USERNAME必须已经存在的

另一种是:CREATEUSER(USERNAME)IDENTIFIEDBY“密码”;改变用户权限的命令是:GRANTROLESTO(USERNAME);以上2种方法都是针对ORACLE9I的版本。

5.用orapwd.exe命令,可以修改命令。

orapwdfile=’/oracle/pwdsid.ora’password=123456这个命令是修改sys用户的密码。你把生成的文件覆盖原来的密码文件。除sys其他用户的密码不会改变。

6.su-oracle

sqlplus/nolog

conn/assysdba

startup(如果数据库不是处于启动状态则启动)

alterusersysidentifiedby123456

然后就可以使用sys用户密码登陆了

操作系统认证方式

conn/assysdba

alterusersysidentifiedbyxxx

最后

以上就是无聊故事为你收集整理的oracle数据库密码认证,oracle操作系统认证以及密码文件认证的全部内容,希望文章能够帮你解决oracle数据库密码认证,oracle操作系统认证以及密码文件认证所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(33)

评论列表共有 0 条评论

立即
投稿
返回
顶部