Oracle的操作系统身份认证
Oracle的操作系统身份认证oraclelogin数据库远程登录authenticationossqlnet.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 “/ as sysdba”。如果我们要禁用os认证,只利用密码文件登录,我们首先要有一个密码文件:orapwd file=C:/oracle/product/10.2.0/db_1/database/PWDoralocal.ora password=maximo entries=10;然后我们要把$ORACLE_HOME/network/admin/sqlnet.ora中设置:SQLNET.AUTHENTICATION_SERVICES= none注意一下,密码文件只在数据库启动的时候加载进去,一旦加载进去,密码文件就脱离了oracle管理,所以我们用orapwd新建密码文件后,里面指定的密码要在数据重启后才能生效:至此,我们已经实现不用os认证(sqlplus “/ as sysdba”的方式登录不了)。那么我们怎么限制网络方面利用sysdba远程登录呢?我们可以设置初始化文件中的REMOTE_LOGIN_PASSWORDFILE=none。注意,当REMOTE_LOGIN_PASSWORDFILE=none时,这个参数生效需要重启数据库,并且,一旦启用这个参数,将使用操作系统认证,不使用口令文件。因此如果REMOTE_LOGIN_PASSWORDFILE=none且SQLNET.AUTHENTICATION_SERVICES= none这个时候数据库是无法登录的。alter system set REMOTE_LOGIN_PASSWORDFILE=none scope=spfile;(1)REMOTE_LOGIN_PASSWORDFILE=none且SQLNET.AUTHENTICATION_SERVICES= none:oracle安装用户本地sqlplus “/ as sysdba”无法登录非oracle安装用户本机sqlplus “sys/change_on_install as sysdba”无法登录非oracle安装用户远程sqlplus “/ as sysdba_on_install@sid as sysdba”无法登录(2)REMOTE_LOGIN_PASSWORDFILE=exclusive且SQLNET.AUTHENTICATION_SERVICES= none:oracle安装用户本地sqlplus “/ as sysdba”无法登录非oracle安装用户本机sqlplus “sys/change_on_install as sysdba”能登录非oracle安装用户远程sqlplus “/ as sysdba_on_install@sid as sysdba”能登录(3)REMOTE_LOGIN_PASSWORDFILE=none且SQLNET.AUTHENTICATION_SERVICES= (NTS):oracle安装用户本地sqlplus “/ as sysdba”能登录非oracle安装用户本机sqlplus “sys/change_on_install as sysdba”无法登录非oracle安装用户远程sqlplus “/ as sysdba_on_install@sid as sysdba”无法登录(4)REMOTE_LOGIN_PASSWORDFILE=exclusive且SQLNET.AUTHENTICATION_SERVICES= (NTS):oracle安装用户本地sqlplus “/ as sysdba”能登录非oracle安装用户本机sqlplus “sys/change_on_install as sysdba”能登录非oracle安装用户远程sqlplus “/ as sysdba_on_install@sid as sysdba”能登录Oracle REMOTE_LOGIN_PASSWORDFILE 参数设置初始化参数 REMOTE_LOGIN_PASSWORDFILE :在 Oracle 数据库实例的初始化参数文件中,此参数控制着密码文件的使用及其状态。它可以有以下几个选项:1、NONE :指示 Oracle 系统不使用密码文件,特权用户的登录通过操作系统进行身份验证;2、EXCLUSIVE :指示只有一个数据库实例可以使用此密码文件。只有在此设置下的密码文件可以包含有除 SYS 以外的用户信息,即允许将系统权限 SYSOPER /SYSDBA 授予除 SYS 以外的其他用户。此设置oracle 9i中为缺省值。有朋友说是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)用户登录: CONN SYS/PASS_WORD AS SYSDBA;使用如下语句修改用户的密码: ALTER USER user_name IDENTIFIED BY "newpass";注意:密码不能全是数字。并且不能是数字开头。否则会出现:ORA-00988: 口令缺失或无效二、忘记SYS用户,或者是SYSTEM用户的密码。如果是忘记SYSTEM用户的密码,可以用SYS用户登录。然后用ALTER USER 命令修改密码:CONN SYS/PASS_WORD AS SYSDBA;ALTER USER SYSTEM IDENTIFIED BY "newpass";如果是忘记SYS用户的密码,可以用SYSTEM用户登录。然后用ALTER USER 命令修改密码。CONN SYSTEM/PASS_WORD ;ALTER USER SYSTEM IDENTIFIED BY "newpass";三、如果SYS,SYSTEM用户的密码都忘记或是丢失。可以使用ORAPWD.EXE 工具修改密码。开始菜单->运行->输入‘CMD’,打开命令提示符窗口,输入如下命令:orapwd file=D:\oracle10g\database\pwdctcsys.ora password=newpass这个命令重新生成了数据库的密码文件。密码文件的位置在ORACLE_HOME目录下的\database目录下。这个密码是修改sys用户的密码。除sys其他用户的密码不会改变。不过Oracle提供了两种验证方式,一种是OS验证,另一种密码文件验证方式,如果是第一种方式用以下方法修改密码:sqlplus /nolog;connect / as sysdbaalter user sys identified by ;alter user system identified by ;如果是第二种方法就用上述方式修改,也可以下方法修改密码:orapwd file=pwdxxx.ora password=你设定的新密码 entries=10设定完后,重新启动服务,再次登陆就可以了。oracle 11g在本机安装完Oracle以后,不记得sys用户的密码了,采用如下方法可以修改密码:1.打开cmd,输入sqlplus /nolog,回车;输入“conn / as sysdba”;输入“alter user sys identified by 新密码”,注意:新密码最好以字母开头,否则可能出现错误Ora-00988。有了这个方法后,只要自己对oracle服务器有管理员权限,不记得密码的时候就可以随意修改密码了。2.在命令行执行如下命令:sqlplus “/@服务名 as sysdba”,然后在sqlplus中alter user sys identified by 新密码;alter user system identified by 新密码;3.运行到C盘根目录1)输入:SET ORACLE_SID = 你的SID名称2)输入:sqlplus/nolog3)输入:connect/as sysdba4)输入:alert user sys identified by sys5)输入:alert user system identified by system6)更改完成,密码是Oracle数据库初始密码4.首先,在CMD下输入SQLPLUS/NOLOG然后再在出来的界面中打入CONN/AS SYSDBA,这样就会以本地系统登录的用户为信任用上一个:oralce中for执行动态sql
下一个:RMAN常用命令
- 更多Oracle疑问解答:
- 运行exp备份oracle数据库提示oracle-12154错误
- 有没有,生产Oracle Rman 备份脚本的工具啊!
- 初学orcle,希望有大大帮忙解说一下详细步骤,从登录oracle到创建表的过程
- oracle语句问题:一张user表,三个字段,id,name,time,插入记录比如:张三2007,李四2008,张三2011
- 如何写一个ORACLE触发器同步两个表中的数据?
- oracle 如何查看一个服务器上有多少个数据库.
- oracle 创建包的时候错误 求解
- oracle 重复列的问题
- oracle 中如何查处2星期前的数据
- 请教oracle数据库安装中的问题
- 请问谁能提供给我标准的oracle ERP的数据库表结构并详细说明各表主要的作用?
- 安装oracle遇到的问题 invalid entry CRC (expected 0x3e12e795 but got 0x9db0e9fd)
- 我的是ORACLE 10G,在RMAN中如何按指定的时间恢复数据文件啊?
- oracle为什么没有自动增长列
- oracle快捷键都有哪些啊?