Oracle口令文件介绍
Oracle-10g_11g-密码策略-用户口令-大小写敏感-说明
CORE 10.2.0.5.0 Production
TNS for Linux: Version 10.2.0.5.0 -Production
NLSRTL Version 10.2.0.5.0 - Production
从这里可以看出,在Oracle 10g下,密码是不分大小写。
--这里我们可以继续测试:
我们将sysdba 权限从dave1用户revoke,然后测试:
SQL> conn / as sysdba;
Connected.
SQL> revoke sysdba,sysoper from dave1;
SQL> conn dave1/dave;
Connected.
--还是可以继续使用,不分大小写
把DB 重启一下看看:
SQL> shutdown immediate
ORA-01031: insufficient privileges
SQL> conn / as sysdba;
Usage: orapwdfile=<fname> entries=<users> force=<y/n>ignorecase=<y/n> nosysdba=<y/n>
where
file - name of password file (required),
--创建2个测试用户:
SQL> create user dave1 identified byDavE;
ORACLE口令管理
ORACLE⼝令管理⼝令⽂件介绍在ORALCE数据库系统中,⽤户如果要以特权⽤户⾝份(SYS/SYSDBA/SYSOPER)登录ORALCE数据库可以有两种⾝份验证的⽅法:即使⽤与操作系统集成的⾝份验证或使⽤ORALCE数据库的密码⽂件进⾏⾝份验证。
因此,管理好密码⽂件,对于控制授权⽤户从服务器本机或远端登录Oracle数据库系统,执⾏数据库管理⼯作,具有重要的意义.ORALCE⼝令⽂件⽤于存储拥有部分特权⽤户(sys等⽤户)的⼝令(注意:普通账号密码是不会存储在⼝令⽂件的)。
允许⽤户通过⼝令⽂件验证,在数据库未启动之前登陆,从⽽启动数据库。
如果没有⼝令⽂件,在数据库未启动之前就只能通过操作系统认证.⼝令⽂件存放在$ORACLE_HOME/dbs⽬录下(linux,window放在database),默认名称是orapw$ORACLE_SID。
即密码⽂件位置:Linux下的存放位置:$ORACLE_HOME/dbs/orapw<sid>.oraWindows下的存放位置:$ORACLE_HOME/database/PW%ORACLE_SID%.ora⼝令⽂件管理1:⼝令⽂件成员查看SQL> SELECT * FROM V$PWFILE_USERS;USERNAME SYSDBA SYSOPER------------------------------ ------ -------SYS TRUE TRUE如果查询该视图没有的记录的话,那么这是什么情况呢?出现这种情况,⼀般是⼝令⽂件被删除或移⾛。
例如如下操作所⽰:oracle@DB-Server ~]$[oracle@DB-Server ~]$ cd $ORACLE_HOME/dbs[oracle@DB-Server dbs]$ mv orapwgsp /tmp[oracle@DB-Server dbs]$ sqlplus / as sysdbaSQL*Plus: Release 11.2.0.1.0 Production on Thu Aug 4 17:43:39 2016Copyright (c) 1982, 2009, Oracle. All rights reserved.Connected to:Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit ProductionWith the Partitioning, OLAP, Data Mining and Real Application Testing optionsSQL> SELECT * FROM V$PWFILE_USERS;no rows selectedSQL>ORACLE使⽤操作系统集成的⾝份验证或使⽤密码验证,这个类似SQL SERVER中的Windows⾝份验证和SQL Server验证⽅式,那么使⽤哪种⽅式登录数据库是由两个参数控制的。
Oracle-OS认证以及口令文件
在unix/linux下也可以在文件sqlnet.ora中增加SQLNET.AUTHENTICATION_SERVICES=(none)以及删除dba(groupdel dba)组或者把oracle用户从dba组中删除都可以屏蔽os认证。利用这两种方法屏蔽os功能似乎总有些让人不放心,或者说不能让人完全信服,因为毕竟系统管理员还是可以创建ora_dba or dba组以及修改sqlnet.ora文件......
到底可以有几个用户被授予sysdba或者sysoper权限,是由创建口令文件时指定的entries数决定的,准确的说还不完全是,最终还和os block的大小有关,如果entries指定了5,一个os block可以存放8个用户的口令,那么可以由8个用户被授予sysdba或者sysoper。
还有一个问题修改了口令,口令长度增加了,按说占用的空间多了,事实是不论我们的口令多长,加密之后的长度几乎都是相同的,也就是说口令文件占用的大小和口令指定的长度几乎关系不大!
但是方便的同时也带来了一些安全隐患,于是很多人想屏蔽os认证,
在win下只要把oracle_home/NETWORK/admin/sqlnet.ora中的SQLNET.AUTHENTICATION_SERVICES= (nts)nts改成none或者注释掉这句话(在前面加上#),就可以屏蔽os功能,要想以sys用户连上数据库必须输入正确的sys口令,或者可以把oracle的安装用户从组ora_dba中删除掉,当然也可以直接把ora_dba这个组也删除,都可以屏蔽os功能.如:SQL> connect /as sysdbaERROR:ORA-01031: 权限不足SQL> connect sys/aaa as sysdbaERROR:ORA-01017: 用户名/口令无效; 登录被拒绝SQL> connect aaa/bbb as sysdbaERROR:ORA-01031: 权限不足SQL> connect sys/system as sysdba已连接。SQL>
oracle中os认证,参数remote_login_passwordfile,口令文件(转)
1、os认证oracle安装之后默认情况下是启动os认证。
os认证的意思是把登录到数据库的用户和口令校验放在了操作系统一级。
如果以安装oracle时的用户登录os ,那么登录oracle数据库时不需要任何验证如:SQL> conn test/oracle as sysdbaConnected.SQL> conn test/oracle@orcl as sysdbaConnected.SQL> conn /as sysdbaConnected.SQL> conn ss/ss as sysdbaConnected.SQL> conn ss/ss@orcl as sysdbaConnected.SQL> conn test/ss@orcl as sysdbaConnected.SQL> conn test/oracle@orcl as sysdbaConnected.不论输入什么用户,那怕该用户不存在,只要一sysdba的权限连接都可以连接,这样在虽然很方便但是很不安全。
这是我们可以把oracle_home/NETWORK/admin/sqlnet.ora中的SQLNET.AUTHENTICATION_SERVICES= (nts)nts改成none或者注释掉这句话(在前面加上#),就可以屏蔽os功能,要想sys用户连接数据库必须输入正确的口令,或者将该用户从ora_dba组删除。
SQLNET.AUTHENTICATION_SERVICES=(NTS)|(NONE) |(ALL)SQLNET.AUTHENTICATION_SERVICES=(NTS): 操作系统认证方式,不使用口令文件SQLNET.AUTHENTICATION_SERVICES=(NONE):口令文件认证方式SQLNET.AUTHENTICATION_SERVICES=(ALL):两种都采用2、参数remote_login_passwordfileREMOTE_LOGIN_PASSWORDFILE=(NONE)|(EXCLUSIVE)|(SHARED)REMOTE_LOGIN_PASSWORDFILE=(NONE):不使用口令文件,操作系统认证REMOTE_LOGIN_PASSWORDFILE=(EXCLUSIVE):口令文件认证方式,但只有一个数据库实例可以使用此文件,系统允许将SYSOPER/SYSDBA授予除INTERNAL/SYS以外的其他用户,且以具有这类身份的其他用户登录是有效的REMOTE_LOGIN_PASSWORDFILE=(SHARED):口令文件认证方式,可有多个数据库实例使用此文件,但是此设置下只有INTERNAL/SYS帐号能被识别,即使文件中存有其他用户的信息,也不允许他们以SYSOPER/SYSDBA登录3,、oracle口令文件oracle的口令文件的作用是存放所有已sysdba或者sysoper权限的连接数据的用户,使用口令文件的好处就是,在数据关闭的情况下,依然可以通过口令文件验证来连接数据库。
oracle19c口令格式
oracle19c口令格式
Oracle 19c是一种关系型数据库管理系统,它要求用户设置强
密码来保护数据库的安全性。
以下是Oracle 19c中口令的格式要求:
1. 长度要求,口令长度必须在8到30个字符之间。
2. 大小写要求,口令必须包含至少一个大写字母和一个小写字母。
3. 数字要求,口令必须包含至少一个数字。
4. 特殊字符要求,口令必须包含至少一个特殊字符,如
`!@#$%^&()`等。
5. 重复字符要求,口令中不允许出现连续三个或更多相同的字符。
6. 用户名限制,口令不能包含与用户名相同的部分。
7. 字典词汇限制,口令不能包含常见的字典词汇或常用密码。
8. 历史口令限制,Oracle 19c可以配置历史口令策略,禁止用户在一段时间内重复使用先前使用过的口令。
请注意,以上是Oracle 19c中口令格式的一般要求,实际的设置可能会因安全策略而有所不同。
在设置口令时,建议考虑使用独特的、难以猜测的组合,并定期更改口令以增加数据库的安全性。
oracle数据库口令规范
Oracle数据库密码文件详解
在Oracle数据库系统中,用户如果要以特权用户身份(INTERNAL/SYSDBA/SYSOPER)登录Oracle 数据库可以有两种身份验证的方法:即使用与操作系统集成的身份验证或使用Oracle数据库的密码文件进行身份验证。
因此,管理好密码文件,对于控制授权用户从远端或本机登录Oracle数据库系统,执行数据库管理工作,具有重要的意义。
Oracle数据库的密码文件存放有超级用户INTERNAL/SYS的口令及其他特权用户的用户名/口令,它一般存放在ORACLE_HOME\DATABASE(如D:\oracle\product\10.2.0\db_1\database)目录下。
一、密码文件的创建:在使用Oracle Instance Manager创建一数据库实例的时侯,在ORACLE_HOME\DATABASE目录下还自动创建了一个与之对应的密码文件,文件名为PWDSID.ORA,其中SID代表相应的Oracle数据库系统标识符。
此密码文件是进行初始数据库管理工作的基础。
在此之后,管理员也可以根据需要,使用工具ORAPWD.EXE手工创建密码文件,命令格式如下:C:\>ORAPWD FILE=<FILENAME >PASSWORD =<PASSWORD >ENTRIES=< MAX_USERS >各命令参数的含义为:FILENAME:密码文件名;PASSWORD:设置INTERNAL/SYS帐号的口令;MAX_USERS:密码文件中可以存放的最大用户数,对应于允许以SYSDBA/SYSOPER权限登录数据库的最大用户数。
由于在以后的维护中,若用户数超出了此限制,则需要重建密码文件,所以此参数可以根据需要设置得大一些。
有了密码文件之后,需要设置初始化参数REMOTE_LOGIN_PASSWORDFILE来控制密码文件的使用状态。
二、设置初始化参数REMOTE_LOGIN_PASSWORDFILE:在Oracle数据库实例的初始化参数文件中,此参数控制着密码文件的使用及其状态。
Oracle口令文件介绍
==============================Oracle 密码文件==============================一、密码文件oracle的口令文件的作用是存放所有以sysdba或sysoper权限连接数据库用户的口令,如果想以sysdba或sysoper权限远程连接数据库,必须使用口令文件,否则不能连接,由于sys用户在连接数据库时必须以sysdba or sysoper方式,也就是说sys用户要想远程连接数据库必须使用口令文件,因此可以认为在数据库中存放sys用户的口令其实没有任何意义,因为你本机其实还是可以登陆的!使用口令文件的好处是即使数据库不处于open状态,依然可以通过口令文件验证来连接数据库。
开始安装完oracle,没有给普通用户授予sysdba或sysoper权限,口令文件中只存放了sys与system的口令,如果之后把sysdba或sysoper权限授予了普通用户,那么此时会把普通用户的口令从数据库中读到口令文件中保存下来,当然这时必须要求数据库处于open状态。
二、Oracle的两种认证方式;使用与操作系统集成的身份验证1.使用与操作系统集成的身份验证数据库的密码文件进行身份认证2.使用Oracle数据库的密码文件进行身份认证三、密码文件的位置Linux下的存放位置:$ORACLE_HOME/dbs/orapw$ORACLE_SID即:ORACLE_HOME/dbs/orapw<sid>Windows下的存放位置:$ORACLE_HOME/database/PW%ORACLE_SID%.ora密码文件查找的顺序 --->orapw<sid>--->orapw--->Failure密码文件查找的顺序认证 两种认证方式:类型与SQL server中的windows认证和SQL server认证决定在两个参数中决定在两个参数中1.remote_login_passwordfile = none | exclusive |shared 位于参数文件中$ORACLE_HOME/dbs/spfile$ORACLE_SID.ora参数文件中不使用密码文件认证none : 不使用密码文件认证exclusive :使用密码文件认证,自己独占使用(默认值)shared :使用密码文件认证,不同实例dba用户可以共享密码文件(如集群)2. $ORACLE_HOME/network/admin/sqlnet.oraSQLNET.AUTHENTICATION_SERVICES = none | all | ntf(windows)表示关闭操作系统认证,只能密码文件认证none : 表示关闭操作系统认证,只能密码文件认证平台,关闭本机密码文件认证采用操作系统认证,但远程 all : 用于linux或unix平台,关闭本机密码文件认证采用操作系统认证,但远程可以使用密码文件认证<非本机>可以使用密码文件认证平台nts : 用于windows平台如果使用组合如果使用组合1 2用户可登陆 none none sys用户无论是本机还是远程均不可登陆,但是非sys用户可登陆四、演示判断当前使用的是操作系统认证还是密码认证,都是在本机操作实验remote_login_passwordfile = exclusive1、在sqlnet.ora 中追加SQLNET.AUTHENTICATION_SERVICES = none[oracle@wangdm ~ 14:48 #22]$ sqlplus / as sysdba星期五 9月 21 14:48:27 2012 SQL*Plus: Release 10.2.0.1.0 - Production on 星期五Copyright (c) 1982, 2005, Oracle. All rights reserved.ERROR:ORA-01031: insufficient privilegesEnter user-name:--------------------------------------------------------------------------------- [oracle@wangdm ~ 23:49 #35]$ sqlplus sys/oracle@zhqhdb as sysdba/*使用密码文件认证,登陆成功*/星期五 9月 21 23:41:58 2012 SQL*Plus: Release 10.2.0.1.0 - Production on 星期五Copyright (c) 1982, 2005, Oracle. All rights reserved.Connected to:Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - ProductionWith the Partitioning, OLAP and Data Mining optionsSQL>---------------------------------------------------------------------------------2、将SQLNET.AUTHENTICATION_SERVICES的值改为all[oracle@wangdm ~ 23:45 #23]$ sqlplus / as sysdba/*采用本机认证可以登陆*/星期五 9月 21 23:45:30 2012 SQL*Plus: Release 10.2.0.1.0 - Production on 星期五Copyright (c) 1982, 2005, Oracle. All rights reserved.Connected to:Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - ProductionWith the Partitioning, OLAP and Data Mining optionsSQL>--------------------------------------------------------------------------------- [oracle@wangdm ~ 23:47 #27]$ sqlplus sys/oracle@zhqhdb as sysdba /*使用密码文件登陆认证失败*/星期五 9月 21 23:47:37 2012 SQL*Plus: Release 10.2.0.1.0 - Production on 星期五Copyright (c) 1982, 2005, Oracle. All rights reserved.ERROR:ORA-12641: Authentication service failed to initializeEnter user-name:/*注:此时可以使用远程登陆*/行注释掉恢复到缺 /*使用#符号将新增的SQLNET.AUTHENTICATION_SERVICES行注释掉恢复到缺省值,使用缺省值时系统认证及密码文件认证都可用*/五、密码文件的建立:orapwd[oracle@robinson ~]$ orapwdUsage: orapwd file=<fname> password=<password> entries=<max_us ers_num> force=<y/n>参数解释:file - name of password file/*密码文件的名字orapw<sid>*//* The name of the file must be orapwsid, and you must supply the full path name. Its contents are encrypted . Typically, the password file is created in the $ORACLE_HOME/dbs directory. */password - password for SYS/*sys用户的密码*/entries - maximum number of distinct DBA/*密码文件中可以存放的最大用户数,对应于允许以SYSDBA/SYSOPER权限登录 数据库的最大用户数,去掉重复记录; 到底可以有几个用户被授予sysdba或者sysoper 权限,说是由创建口令文件时指定的entries数决定的,但实际上貌似不像啊,有人说可能跟os block的大小有关,如果entries指定了5,一个os block可以存放9个用户的口令,那么可以有9个用户被授予sysdba或者sysoper,可是9个用户占用的块空间也不大啊并没有将系统块用完反而还大半是空闲的,所这个地方有疑问一直没搞明白也有人说是按矩阵来算但还也不对啊,请高手指点罗*/force - whether to overwrite existing file/*10g新增的参数,默认值为n ,y表示允许覆盖*/OPERS(opt):There are no spaces around the equal-to (=) character.实例如下图,生成实例为zhqhdb的密码文件,密码为handsome修改密码:--修改密码:--演示将entries 改为1,然后将多个用户设置为sysdba或sysoper角色--给多个用户赋予sysdba角色ORA-01996: GRANT failed: password file '' is full会出现错误:会出现错误:发现多出几行,即当设置的时候多出了个用户--再次查看orapwzhqhdb发现多出几行,即当设置的时候多出了个用户注意不要轻易删掉密码文件,以免将其他账户的信息也删除--注意不要轻易删掉密码文件,以免将其他账户的信息也删除六、密码文件内容修改的几种方式建立,修改密码文件,不建议使用1.使用orapwd建立,修改密码文件,不建议使用2.使用alter user sys identified by <>3.使用grant sysdba to <> 或grant sysoper to <> 或revoke sysdba |sysoperfrom <>七、查看密码文件内容[oracle@wangdm /u01/app/oracle/product/10.2.0/db/dbs]$ strings orapwzhqhdb]\[ZORACLE Remote Password fileINTERNALAB27B53EDC5FEF418A8F025737A9097A修改密码--当sys密码不记得可以使用OS系统身份认证登陆到sqlplus,再使用alter user修改密码SQL> alter user sys identified by handsome;User altered再次查看密码文件与上一次对比,已经发生变化--再次查看密码文件与上一次对比,已经发生变化SQL> ho strings orapwzhqhdb]\[ZORACLE Remote Password fileINTERNAL42998405ACC042404273B1DBEBCE9A20的信息--通过授予权限来修改密码,密码文件中多出了scott的信息SQL> grant sysdba to scott;Grant succeeded.SQL> ho strings orapworcl]/[ZORACLE Remote Password fileINTERNALAB27B53EDC5FEF418A8F025737A9097ASCOTTF894844C34402B67--注意此处中登陆后,显示的账户信息还是sys而不是hs_user,但此时的hs_user已经权限具备了sys权限八、sysdba 与sysoper的区别SQL> select * from system_privilege_map where name like '%SYS%';PRIVILEGE NAME ---------- ---------------------------------------- -----------3 ALTER SYSTEM -4 AUDIT SYSTEM -83 SYSDBA -84 SYSOPER --下面的链接是两者不同的权限说明/docs/cd/B19306_01/server.102/b14231/dba.htm#sthref137 The manner in which you are authorized to use these privileges dependsupon the method of authentication that you use. When you connect withSYSDBA or SYSOPER privileges,you connect with a default schema,not with theschema that is generally associated with your username.For SYSDBAthis schema is SYS; for SYSOPER the schema is PUBLIC.不同--两者的schema不同SQL> show userUSER is "SYS"SQL> conn / as sysoperConnected.SQL> show userUSER is "PUBLIC"--查看密码文件视图,可以得到哪些用户为sysdba,哪些用户为sysoper下面演示了使用不同的角色来登陆--下面演示了使用不同的角色来登陆。
Oracle数据库口令策略
function_name(userid_parameter IN VARCHAR2(30),password_parameter IN VARCHAR2(30),old_password_paramemter IN VARCHAR2(30)) RETURN BOOLEAN
password_grace_time 3; //口令到期的3天后被锁定,这3天内可以对口令做改变。
(3)保留口令历史记录:PASSWORD_REUSE_TIME保留时间(几天)/ PASSWORD_REUSE_MAX保留最多重用次数(几次)
注意:PASSWORD_REUSE_TIME和PASSWORD_REUSE_MAX是复式的,可以都指定但只有一个生效)
sql>alter user test
account lock; //此时test用户状态:expired&locked
sql>desc dba_profiles //profile、resource_name、resource_type、limit(继承)
sql>select * from dba_profiles where profile='profile1';
口令限制是一直保持的。使用CREATE USER or Lock,unlock ,expire accounts这些命令
sql> alter user test account lock; //帐号锁定
sql>alter user test account unlock; //帐号解锁
ch05 Oracle中SYS用户的口令
Unix操作系统认证方法 Unix操作系统认证方法
注意:安装完Oracle数据库后,在Windows系统已经有一个用户组 注意:安装完Oracle数据库后,在Windows系统已经有一个用户组 ORA_DBA。在默认情况下,它的组成员只有administrator。 ORA_DBA。在默认情况下,它的组成员只有administrator。
2. 创建用户(如test),使他隶属于ORA_SID_DBA或ORA_DBA组。 创建用户(如test),使他隶属于ORA_SID_DBA或ORA_DBA组。 3. 修改参数remote_login_pasபைடு நூலகம்wordfile为NONE,表示对于远程连接的用户, 修改参数remote_login_passwordfile为NONE,表示对于远程连接的用户, 不需要使用Oracle认证其口令。 不需要使用Oracle认证其口令。 4. 修改D:\oracle\product\10.2.0\db_1\NETWORK\ADMIN目录下的文件 修改D:\oracle\product\10.2.0\db_1\NETWORK\ADMIN目录下的文件 sqlnet.ora,进行如下设置 sqlnet.ora,进行如下设置 SQLNET.AUTHENTICATION_SERVICES= (NTS)
使用操作系统认证时,只要是以Administrator或 使用操作系统认证时,只要是以Administrator或 ORA_SID_DBA组的成员登录操作系统,那么在连接数据库时, ORA_SID_DBA组的成员登录操作系统,那么在连接数据库时, 其认证由操作系统进行,Oracle不再要求提供口令。 其认证由操作系统进行,Oracle不再要求提供口令。
oracle中os认证,参数remote_login_passwordfile,口令文件(转)
1、os认证oracle安装之后默认情况下是启动os认证。
os认证的意思是把登录到数据库的用户和口令校验放在了操作系统一级。
如果以安装oracle时的用户登录os ,那么登录oracle数据库时不需要任何验证如:SQL> conn test/oracle as sysdbaConnected.SQL> conn test/oracle@orcl as sysdbaConnected.SQL> conn /as sysdbaConnected.SQL> conn ss/ss as sysdbaConnected.SQL> conn ss/ss@orcl as sysdbaConnected.SQL> conn test/ss@orcl as sysdbaConnected.SQL> conn test/oracle@orcl as sysdbaConnected.不论输入什么用户,那怕该用户不存在,只要一sysdba的权限连接都可以连接,这样在虽然很方便但是很不安全。
这是我们可以把oracle_home/NETWORK/admin/sqlnet.ora中的SQLNET.AUTHENTICATION_SERVICES= (nts)nts改成none或者注释掉这句话(在前面加上#),就可以屏蔽os功能,要想sys用户连接数据库必须输入正确的口令,或者将该用户从ora_dba组删除。
SQLNET.AUTHENTICATION_SERVICES=(NTS)|(NONE) |(ALL)SQLNET.AUTHENTICATION_SERVICES=(NTS): 操作系统认证方式,不使用口令文件SQLNET.AUTHENTICATION_SERVICES=(NONE):口令文件认证方式SQLNET.AUTHENTICATION_SERVICES=(ALL):两种都采用2、参数remote_login_passwordfileREMOTE_LOGIN_PASSWORDFILE=(NONE)|(EXCLUSIVE)|(SHARED)REMOTE_LOGIN_PASSWORDFILE=(NONE):不使用口令文件,操作系统认证REMOTE_LOGIN_PASSWORDFILE=(EXCLUSIVE):口令文件认证方式,但只有一个数据库实例可以使用此文件,系统允许将SYSOPER/SYSDBA授予除INTERNAL/SYS以外的其他用户,且以具有这类身份的其他用户登录是有效的REMOTE_LOGIN_PASSWORDFILE=(SHARED):口令文件认证方式,可有多个数据库实例使用此文件,但是此设置下只有INTERNAL/SYS帐号能被识别,即使文件中存有其他用户的信息,也不允许他们以SYSOPER/SYSDBA登录3,、oracle口令文件oracle的口令文件的作用是存放所有已sysdba或者sysoper权限的连接数据的用户,使用口令文件的好处就是,在数据关闭的情况下,依然可以通过口令文件验证来连接数据库。
Oracle口令文件:即oracle密码文件
Oracle⼝令⽂件:即oracle密码⽂件⼀:⽂件路径位置[oracle@localhost db_1]$ cd $ORACLE_HOME/dbs[oracle@localhost dbs]$ lsdbsorapwPROD1 hc_orcl.dat initneworcl.ora initorcl.ora lkNEWORCL lkPROD1 orapwneworcl spfileorcl.ora tem.dbfhc_neworcl.dat hc_PROD1.dat init.ora initPROD1.ora lkORCL my.dbf orapworcl spfilePROD1.ora[oracle@localhost dbs]$ pwd/u01/app/oracle/product/11.2.0/db_1/dbs[oracle@localhost dbs]$⼆、⼝令⽂件的命名规则orapw+sid如:orapworcl三、⼝令⽂件存放的是sys主要是存放管理⽤户的密码信息的* v$pwfile_users;SYS@orcl> * v$pwfile_users;USERNAME SYSDB SYSOP SYSAS------------------------------ ----- ----- -----SYSSYS@orcl>四:实验操作注: remote_login_passwordfile 是静态参数。
修改了该值之后,数据库需要重启。
1)当remote_login_passwordfile 是 EXCLUSIVE没有sqlnet.ora⽂件sqlplus sys/oracle sysdbasqlplus / sysdbasqlplus sys/oracle@togogo sysdba以上均成功2)当remote_login_passwordfile是 EXCLUSIVEsqlnet.ora⽂件参数 SQLNET.AUTHENTICATION_SERVICES=sqlplus sys/oracle sysdba 成功sqlplus / sysdba 不成功sqlplus sys/oracle@togogo sysdba 成功[oracle@localhost dbs]$ clear[oracle@localhost dbs]$ lsdbsorapwPROD1 hc_orcl.dat initneworcl.ora initorcl.ora lkNEWORCL lkPROD1 orapwneworcl spfileorcl.ora tem.dbfhc_neworcl.dat hc_PROD1.dat init.ora initPROD1.ora lkORCL my.dbf orapworcl spfilePROD1.ora[oracle@localhost dbs]$ cd ../network/[oracle@localhost network]$ lsadmin doc install jlib lib log mesg tools trace[oracle@localhost network]$ ca admin/-bash: ca: command[oracle@localhost network]$ lsadmin doc install jlib lib log mesg tools trace[oracle@localhost network]$ cd admin/[oracle@localhost admin]$ lslistener.ora samples shrept.lst sqlnet.ora tnsnames.ora[oracle@localhost admin]$ cat sqlnet.oraENCRYPTION_WALLET_LOCATION=(SOURCE=(METHOD=)(METHOD_DATA=(DIRECTORY=$ORACLE_BASE/admin/$ORACLE_SID/wallet/)))[oracle@localhost admin]$ vi sqlnet.oraENCRYPTION_WALLET_LOCATION=(SOURCE=(METHOD=)(METHOD_DATA=(DIRECTORY=$ORACLE_BASE/admin/$ORACLE_SID/wallet/))) SQLNET.AUTHENTICATION_SERVICES=~~~~~~~~~~~~~~~~~~~~~~"sqlnet.ora" 4L, 152C written[oracle@localhost admin]$ cat sqlnet.oraENCRYPTION_WALLET_LOCATION=(SOURCE=(METHOD=)(METHOD_DATA=(DIRECTORY=$ORACLE_BASE/admin/$ORACLE_SID/wallet/))) SQLNET.AUTHENTICATION_SERVICES=[oracle@localhost admin]$ pwd/u01/app/oracle/product/11.2.0/db_1/network/admin[oracle@localhost admin]$[oracle@localhost admin]$ rlwrap sqlplus / sysdba;*Plus: Release 11.2.0.3.0 Production Sat Jun 23 16:01:36 2018Copyright (c) 1982, 2011, Oracle. rights reserved.ERROR:ORA-01031: insufficientEnter -name:ERROR:ORA-01017: invalid username/password; logon deniedEnter -name:ERROR:ORA-01017: invalid username/password; logon deniedSP2-0157: unable ORACLE after 3 attempts, exiting *Plus[oracle@localhost admin]$ rlwrap sqlplus sys/oracle sysdba;*Plus: Release 11.2.0.3.0 Production Sat Jun 23 16:02:40 2018Copyright (c) 1982, 2011, Oracle. rights reserved.Connected :Oracle 11g Enterprise Edition Release 11.2.0.3.0 - Productionthe Partitioning, OLAP, Data Mining Application Testing optionsSYS@orcl>3)当remote_login_passwordfile是 EXCLUSIVEsqlnet.ora⽂件参数 SQLNET.AUTHENTICATION_SERVICES=sqlplus sys/oracle sysdba 成功sqlplus / sysdba 成功sqlplus sys/oracle@togogo sysdba 不成功4)当remote_login_passwordfile是 none 没有sqlnet.ora⽂件sqlplus sys/oracle sysdba 成功sqlplus / sysdba 成功sqlplus sys/oracle@togogo sysdba 不成功5)当remote_login_passwordfile是 nonesqlnet.ora⽂件参数 SQLNET.AUTHENTICATION_SERVICES=sqlplus sys/oracle sysdba 不成功sqlplus / sysdba 不成功sqlplus sys/oracle@togogo sysdba 不成功6)当remote_login_passwordfile是 nonesqlnet.ora⽂件参数 SQLNET.AUTHENTICATION_SERVICES=sqlplus sys/oracle sysdba 成功sqlplus / sysdba 成功sqlplus sys/oracle@togogo sysdba 不成功五、创建⼝令⽂件orapwd =⼝令⽂件名称 password=⽤户密码Creating a Password File with ORAPWDThe syntax of the ORAPWD command is as follows:ORAPWD FILE=filename [ENTRIES=numusers] [FORCE={Y|N}] [IGNORECASE={Y|N}]Command arguments are summarized in the following table.Argument DescriptionFILE Name to assign to the password file. You must supply a complete path. If you supply only a file name, the file is written to the current directory.ENTRIES(Optional) Maximum number of entries (user accounts) to permit in the file.FORCE(Optional) If y, permits overwriting an existing password file.IGNORECASE(Optional) If y, passwords are treated as case-insensitive.There are no spaces permitted around the equal-to (=) character.The command prompts for the SYS password and stores the password in the created password file.ExampleThe following command creates a password file named orapworcl that allows up to 30 privileged users with different passwords.orapwd FILE=orapworcl ENTRIES=30Sharing and Disabling the Password FileYou use the initialization parameter REMOTE_LOGIN_PASSWORDFILE to control whether a password file is shared among multiple Oracle Database instances. You can also use this parameter to disable password file authentication. The values recognized for REMOTE_LOGIN_PASSWORDFILE are:NONE: Setting this parameter to NONE causes Oracle Database to behave as if the password file does not exist. That is, no privileged connections are allowed ov er nonsecure connections.EXCLUSIVE: (The default) An EXCLUSIVE password file can be used with only one instance of one database. Only an EXCLUSIVE file can be modified. Using an E XCLUSIVE password file enables you to add, modify, and delete users. It also enables you to change the SYS password with the ALTER USER command.SHARED: A SHARED password file can be used by multiple databases running on the same server, or multiple instances of an Oracle Real Application Clusters ( Oracle RAC) database. A SHARED password file cannot be modified. Therefore, you cannot add users to a SHARED password file. Any attempt to do so or to cha nge the password of SYS or other users with the SYSDBA or SYSOPER privileges generates an error. All users needing SYSDBA or SYSOPER system privileges mu st be added to the password file when REMOTE_LOGIN_PASSWORDFILE is set to EXCLUSIVE. After all users are added, you can change REMOTE_LOGIN_PASSW ORDFILE to SHARED, and then share the file.This option is useful if you are administering multiple databases or an Oracle RAC database.If REMOTE_LOGIN_PASSWORDFILE is set to EXCLUSIVE or SHARED and the password file is missing, this is equivalent tosetting REMOTE_LOGIN_PASSWORDFILE to NONE.Note:You cannot change the password for SYS if REMOTE_LOGIN_PASSWORDFILE is set to SHARED. An error message is issued if youattempt to do so.Keeping Administrator Passwords Synchronized with the Data DictionaryIf you change the REMOTE_LOGIN_PASSWORDFILE initialization parameter from NONE to EXCLUSIVE or SHARED, or if you re-create the password file with adifferent SYS password, then you must ensure that the passwords in the data dictionary and password file for the SYS user are the same.To synchronize the SYS passwords, use the ALTER USER statement to change the SYS password. The ALTER USER statement updates and synchronizes both the dictionary and password file passwords.To synchronize the passwords for non-SYS users who log in using the SYSDBA or SYSOPER privilege, you must revoke and then regrant the privilege to the user, as follows:Find all users who have been granted the SYSDBA privilege.SELECT USERNAME FROM V$PWFILE_USERS WHERE USERNAME != 'SYS' AND SYSDBA='TRUE';Revoke and then re-grant the SYSDBA privilege to these users.REVOKE SYSDBA FROM non-SYS-user;GRANT SYSDBA TO non-SYS-user;Find all users who have been granted the SYSOPER privilege.SELECT USERNAME FROM V$PWFILE_USERS WHERE USERNAME != 'SYS' AND SYSOPER='TRUE';Revoke and regrant the SYSOPER privilege to these users.REVOKE SYSOPER FROM non-SYS-user;GRANT SYSOPER TO non-SYS-user;Adding Users to a Password FileWhen you grant SYSDBA or SYSOPER privileges to a user, that user's name and privilege information are added to the password file. If the server does not havean EXCLUSIVE password file (that is, if the initialization parameter REMOTE_LOGIN_PASSWORDFILE is NONE or SHARED, or the password file is missing), Oracle Database issues an error if you attempt to grant these privileges.A user's name remains in the password file only as long as that user has at least one of these two privileges. If you revoke both of these privileges, Oracle Database removes the user from the password file.Creating a Password File and Adding New Users to ItUse the following procedure to create a password and add new users to it:Follow the instructions for creating a password file as explained in .Set the REMOTE_LOGIN_PASSWORDFILE initialization parameter to EXCLUSIVE. (This is the default.)Note:REMOTE_LOGIN_PASSWORDFILE is a static initialization parameter and therefore cannot be changed without restarting thedatabase.Connect with SYSDBA privileges as shown in the following example, and enter the SYS password when prompted:CONNECT SYS AS SYSDBAStart up the instance and create the database if necessary, or mount and open an existing database.Create users as necessary. Grant SYSDBA or SYSOPER privileges to yourself and other users as appropriate. See , later in this section.——————————————————————————————————————————————————————————————————。
创建Oracle密码文件的命令
创建Oracle密码文件的命令orapwd file=<> password=<> entries=最大数目这里的file命名规则在unix/linux下orapw<ORACLE_SID>,在windows下为pwd<SID>.ora 具体资料看下面的描述1. unix 环境:Administrator's Reference 10g Release 2 (10.2)for UNIX-Based Operating Systems.1. Log in as the Oracle software owner. (以Oracle管理员身份登入)2. Use the orapwd utility to create the password file as follows(使用orapwd功能创建密码文件):$ $ORACLE_HOME/bin/orapwd file=filename password=password entries=max_usersfilename The name of the file in which password information is written(filename指密码信息保存文件的文件名)The name of the file must be orapwsid,and you must supply the full path name. Its contents are encrypted. Typically,the password file is created in the $ORACLE_HOME/dbs directory.(文件名必须为orapwsid,并需要提供完整路径,内容是加密的,通常情况下,密码文件被创建在$ORACLE_HOME/dbs路径下。
)请注意,unix环境中,password file一定是要用orapw<SID>,没有例外。
口令文件(1)
Java池
Large池
PMON SMON DBWR LGWR CKPT Others
内存结构 后台进程结构
2
连接到Oracle Server
1.建立一个用户连接 2.创建一个会话
连接建立 用户进程
服务器进程
会话创建 Oracle 服务器
数据库用户
3
Oracle数据库
• 数据信息的集合 • 三种类型文件
参数文件
Oracle 数据库 重做日
数据文件 控制文件 志文件
归档日志文件
口令文件
4
物理结构
物理结构包含三种数据文件:
• 控制文件
• 数据文件
• 在线重做日志文件
Header
在线重做 日志文件
数据文件 (包括
数据字典)பைடு நூலகம்
控制文件
5
Oracle逻辑结构
• 数据库如何使用物理空间 • 表空间, 段, 区,块的组成层次
13
Large Pool
• 一个可选的SGA区域 • 能缓解Shared Pool的负担 • 主要用于:
-共享服务器的会话区域(UGA) -服务器进程I/O -使用RMAN备份和恢复 -并行查询信息缓冲 PARALLEL_AUTOMATIC_TUNING = TRUE
• 不是使用LRU链表管理 • LARGE_POOL_SIZE参数控制
• 当一个进程终止释放 • 只能由一个进程使用
PGA 服务器进程
• 包含
• 会话信息 • 排序区
用户进程
• 游标状态
• 堆栈空间
16
进程结构
一个Oracle进程是一个基于某种类型的程序,能够收集信息、 执行一系列的步骤或完成一个特定的任务。
oracle密码文件文件
oracle密码⽂件⽂件密码⽂件作⽤:密码⽂件⽤于dba⽤户的登录认证。
dba⽤户:具备sysdba和sysoper权限的⽤户,即oracle的sys和system⽤户。
本地登录:1)操作系统认证:[oracle@localhost ~]$ sqlplus "/as sysdba"[oracle@localhost ~]$ sqlplus / as sysdba[oracle@localhost ~]$ sqlplus sys/tiger as sysdba2)密码⽂件认证:[oracle@localhost ~]$ sqlplus sys/tiger@rezin as sysdba远程密码⽂件登录:[oracle@localhost ~]$ sqlplus sys/tiger@192.168.96.141:1521/orcl as sysdba密码⽂件位置:linux/unix:[oracle@localhost ~]$ ls $ORACLE_HOME/dbs/orapw$ORACLE_SID/u01/oracle/10g/dbs/orapworcl/u01/oracle/10g/dbs/orapwrezinwindows:$ORACLE_HOME/oradate/orapw$ORACLE_SID密码⽂件查找顺序:1)opapw<sid>2)orapw以上两个都查找不到,验证失败。
密码⽂件认证还是OS认证:1)参数⽂件:remote_login_passwordfile=none|exclusive|sharednone:不使⽤密码⽂件认证exclusive:使⽤密码⽂件认证,⾃⼰独占使⽤(默认)shared:使⽤密码⽂件认证,不同实例dba⽤户可以共享密码⽂件(asm下必须使⽤)2)$ORACLE_HOME/network/admin/sqlnet.ora⽂件下:SQLNET.AUTHENTICATION_SERVICES =none|all|nts(linux下默认没有设置)none:关闭OS认证,只能密码⽂件认证all:linux平台关闭本机密码⽂件认证,采⽤操作系统认证,但是远程(异机)可以密码⽂件认证 nts:windows下使⽤(桶linux下all)练习:1)配置:remote_login_passwordfile=exclusiveSQLNET.AUTHENTICATION_SERVICES =none结果:可以密码⽂件认证(本地/远超),不可以操作系统认证SQL*Plus: Release 10.2.0.1.0 - Production on Sat Mar 14 19:00:39 2015 Copyright (c) 1982, 2005, Oracle. All rights reserved.:Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - ProductionWith the Partitioning, OLAP and Data Mining optionsSQL> exitOracle Database 10g Enterprise Edition Release 10.2.0.1.0 - ProductionWith the Partitioning, OLAP and Data Mining options ??[oracle@localhost ~]$ sqlplus / as sysdba(OS认证)SQL*Plus: Release 10.2.0.1.0 - Production on Sat Mar 14 19:00:51 2015 Copyright (c) 1982, 2005, Oracle. All rights reserved.ERROR:ORA-01031: insufficient privilegesEnter user-name:或[oracle@localhost ~]$ sqlplus "/as sysdba"(OS认证)SQL*Plus: Release 10.2.0.1.0 - Production on Sat Mar 14 19:01:04 2015 Copyright (c) 1982, 2005, Oracle. All rights reserved.ERROR:ORA-01031: insufficient privilegesEnter user-name:2)配置:remote_login_passwordfile=exclusiveSQLNET.AUTHENTICATION_SERVICES =all结果:本机密码⽂件认证不可⽤,但是远程密码⽂件认证可⽤,本机OS认证可⽤[oracle@localhost ~]$ sqlplus "/as sysdba"(本机OS认证登录成功)SQL*Plus: Release 10.2.0.1.0 - Production on Sat Mar 14 19:45:35 2015 Copyright (c) 1982, 2005, Oracle. All rights reserved.Connected to:Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - ProductionWith the Partitioning, OLAP and Data Mining options[oracle@localhost ~]$ sqlplus sys/tiger@orcl as sysdba(本机密码⽂件认证失败)SQL*Plus: Release 10.2.0.1.0 - Production on Sat Mar 14 19:46:52 2015 Copyright (c) 1982, 2005, Oracle. All rights reserved.ERROR:ORA-12641: Authentication service failed to initializeEnter user-name:连接到:Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - ProductionWith the Partitioning, OLAP and Data Mining optionsSQL>[oracle@localhost ~]$ sqlplus scott/tiger(普通⽤户本地OS登录成功)SQL*Plus: Release 10.2.0.1.0 - Production on Sat Mar 14 20:01:57 2015Copyright (c) 1982, 2005, Oracle. All rights reserved.Connected to:Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - ProductionWith the Partitioning, OLAP and Data Mining optionsSQL>[oracle@localhost ~]$ sqlplus scott/tiger@orcl(登录失败)[oracle@localhost ~]$ sqlplus scott/t (登录失败)SQL*Plus: Release 10.2.0.1.0 - Production on Sat Mar 14 20:02:52 2015Copyright (c) 1982, 2005, Oracle. All rights reserved.ERROR:ORA-12641: Authentication service failed to initializeEnter user-name:密码⽂件管理:密码⽂件建⽴:orapwd命令⽤法(不建议使⽤)[oracle@localhost ~]$ orapwdUsage: orapwd file=<fname> password=<password> entries=<users> force=<y/n>wherefile - name of password file (mand), -->创建密码⽂件名字:orapw<sid>password - password for SYS (mand), -->sys⽤户密码entries - maximum number of distinct DBA and -->可以有多少个sysdba和sysoper⽤户可以放到密码⽂件⾥边去(采⽤⼆进制⽅式,即输⼊1表⽰最少存放4个,去除重复的)force - whether to overwrite existing file (opt), -->oracle 10g后新加的参数,⽤法:force=n或force=y,表⽰密码⽂件存在是否覆盖,10g之前只能删除原有的密码⽂件,再创建。
Oracle密码文件学习心得
Oracle密码文件学习心得学习 Oracle 密码文件的心得体会:1. 密码文件的作用:Oracle密码文件是一个用于存储数据库用户的用户名和密码加密信息的文件。
它用于授权操作数据库的用户和监控用户连接。
2. 创建密码文件:可以使用 Oracle 的工具程序 ORAPWD 来创建密码文件,该文件存储在数据库服务器的特定目录下。
3. 密码文件的属性:密码文件具有以下属性:- 文件名:密码文件的名称,通常为 orapwSID,其中 SID 为数据库实例名称。
- 存储位置:密码文件通常存储在 $ORACLE_HOME/dbs 目录下。
- 访问权限:密码文件的访问权限默认只有 Oracle 守护程序(如 Oracle Listener)和数据库管理员(SYSDBA 或 SYSOPER)才能读取。
4. 管理密码文件:- 创建密码文件:使用 ORAPWD 工具创建密码文件,并指定至少一个管理员用户(如 SYS)的用户名和密码。
- 删除密码文件:使用操作系统的命令删除密码文件。
- 更改密码文件的访问权限:使用操作系统的命令更改密码文件的访问权限,确保只有授权用户才能读取密码文件。
- 修改密码文件的管理员用户密码:使用ALTER USER 命令修改管理员用户的密码。
5. 密码文件的使用:- SYSDBA 或 SYSOPER 权限访问:连接到 Oracle 数据库时,可以使用 SYSDBA 或SYSOPER 权限指定密码文件。
- 监控用户连接:密码文件还可以被 Oracle 监控程序访问,以监视数据库用户的连接和权限。
被监控的用户需要具有适当的权限。
6. 密码文件的安全性:密码文件包含敏感信息,如用户的用户名和密码,因此需要采取措施保护密码文件的安全性。
建议将密码文件存储在受保护的目录中,并限制只有授权用户才能访问密码文件。
学习 Oracle 密码文件涉及到的概念和操作相对简单,但对于确保数据库的安全性至关重要。
怎样使用orapwd新建口令文件
怎样使用orapwd新建口令文件orapwd是oracle提供的创建口令文件的命令,如果口令文件不见了可以用这个命令重新创建。
下面是orapwd命令的一些解释。
D:\oracle\ora92\database>orapwdUsage: orapwd file=<fname> password=<password> entries=<users>wherefile - name of password file (mand),password - password for SYS (mand),entries - maximum number of distinct DBA and OPERs (opt),There are no spaces around the equal-to (=) character.例如:D:\oracle\ora92\database>orapwd file=pwdcjh.orapassword=cjhentries=2其中参数entries的含义是表示口令文件中可以存放的最大用户数,对应于允许以SYSDBA/SYSOPER权限登录数据库的最大用户数,如果用户数超过这个值只能重建口令文件,增大entries。
file后面可以指定口令文件的全路径和文件名,否则创建在当前目录下。
windows下oracle默认的位置是ora92/database目录,默认的文件名是pwdSID.ora,对于别的文件名是不认的。
linux下oracle默认的位置是$ORACLE_HOME/dbs目录,默认的文件名是orapwSID,对于别的文件名是不认的。
创建完后,数据库需要重启动,新的口令文件才能生效。
但是这个口令文件对于非操作系统认证例如网络连接的方式才有用。
对于在本机登录,因为采用了操作系统认证,不管用什么口令都可以登录,实际上口令没起任何作用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
============================== Oracle 密码文件==============================一、密码文件oracle的口令文件的作用是存放所有以sysdba或sysoper权限连接数据库用户的口令,如果想以sysdba或sysoper权限远程连接数据库,必须使用口令文件,否则不能连接,由于sys用户在连接数据库时必须以sysdba or sysoper方式,也就是说sys用户要想远程连接数据库必须使用口令文件,因此可以认为在数据库中存放sys用户的口令其实没有任何意义,因为你本机其实还是可以登陆的!使用口令文件的好处是即使数据库不处于open状态,依然可以通过口令文件验证来连接数据库。
开始安装完oracle,没有给普通用户授予sysdba或sysoper权限,口令文件中只存放了sys与system的口令,如果之后把sysdba或sysoper权限授予了普通用户,那么此时会把普通用户的口令从数据库中读到口令文件中保存下来,当然这时必须要求数据库处于open状态。
二、Oracle的两种认证方式;1.使用与操作系统集成的身份验证2.使用Oracle数据库的密码文件进行身份认证三、密码文件的位置Linux下的存放位置:$ORACLE_HOME/dbs/orapw$ORACLE_SID即:ORACLE_HOME/dbs/orapw<sid>Windows下的存放位置:$ORACLE_HOME/database/PW%ORACLE_SID%.ora 密码文件查找的顺序--->orapw<sid>--->orapw--->Failure两种认证方式:类型与SQL server中的windows认证和SQL server认证决定在两个参数中1.remote_login_passwordfile = none | exclusive |shared 位于$ORACLE_HOME/dbs/spfile$ORACLE_SID.ora参数文件中none : 不使用密码文件认证exclusive :使用密码文件认证,自己独占使用(默认值)shared :使用密码文件认证,不同实例dba用户可以共享密码文件(如集群)2. $ORACLE_HOME/network/admin/sqlnet.oraSQLNET.AUTHENTICATION_SERVICES = none | all | ntf(windows)none : 表示关闭操作系统认证,只能密码文件认证all : 用于linux或unix平台,关闭本机密码文件认证采用操作系统认证,但远程<非本机>可以使用密码文件认证nts : 用于windows平台如果使用组合1 2none none sys用户无论是本机还是远程均不可登陆,但是非sys用户可登陆四、演示判断当前使用的是操作系统认证还是密码认证,都是在本机操作实验remote_login_passwordfile = exclusive1、在sqlnet.ora 中追加SQLNET.AUTHENTICATION_SERVICES = none[oracle@wangdm ~ 14:48 #22]$ sqlplus / as sysdbaSQL*Plus: Release 10.2.0.1.0 - Production on 星期五9月21 14:48:27 2012Copyright (c) 1982, 2005, Oracle. All rights reserved.ERROR:ORA-01031: insufficient privilegesEnter user-name:--------------------------------------------------------------------------------- [oracle@wangdm ~ 23:49 #35]$ sqlplus sys/oracle@zhqhdb as sysdba /*使用密码文件认证,登陆成功*/SQL*Plus: Release 10.2.0.1.0 - Production on 星期五9月21 23:41:58 2012Copyright (c) 1982, 2005, Oracle. All rights reserved.Connected to:Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - ProductionWith the Partitioning, OLAP and Data Mining optionsSQL>--------------------------------------------------------------------------------- 2、将SQLNET.AUTHENTICATION_SERVICES的值改为all[oracle@wangdm ~ 23:45 #23]$ sqlplus / as sysdba/*采用本机认证可以登陆*/SQL*Plus: Release 10.2.0.1.0 - Production on 星期五9月21 23:45:30 2012Copyright (c) 1982, 2005, Oracle. All rights reserved.Connected to:Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - ProductionWith the Partitioning, OLAP and Data Mining optionsSQL>--------------------------------------------------------------------------------- [oracle@wangdm ~ 23:47 #27]$ sqlplus sys/oracle@zhqhdb as sysdba /*使用密码文件登陆认证失败*/SQL*Plus: Release 10.2.0.1.0 - Production on 星期五9月21 23:47:37 2012Copyright (c) 1982, 2005, Oracle. All rights reserved.ERROR:ORA-12641: Authentication service failed to initializeEnter user-name:/*注:此时可以使用远程登陆*//*使用#符号将新增的SQLNET.AUTHENTICATION_SERVICES行注释掉恢复到缺省值,使用缺省值时系统认证及密码文件认证都可用*/五、密码文件的建立:orapwd[oracle@robinson ~]$ orapwdUsage: orapwd file=<fname> password=<password> entries=<max_us ers_num> force=<y/n>参数解释:file - name of password file/*密码文件的名字orapw<sid>*//* The name of the file must be orapwsid,and you must supply the full path name. Its contents are encrypted . Typically,the password file is created in the $ORACLE_HOME/dbs directory. */password - password for SYS/*sys用户的密码*/entries - maximum number of distinct DBA/*密码文件中可以存放的最大用户数,对应于允许以SYSDBA/SYSOPER权限登录数据库的最大用户数,去掉重复记录;到底可以有几个用户被授予sysdba或者sysoper 权限,说是由创建口令文件时指定的entries数决定的,但实际上貌似不像啊,有人说可能跟os block的大小有关,如果entries指定了5,一个os block可以存放9个用户的口令,那么可以有9个用户被授予sysdba或者sysoper,可是9个用户占用的块空间也不大啊并没有将系统块用完反而还大半是空闲的,所这个地方有疑问一直没搞明白也有人说是按矩阵来算但还也不对啊,请高手指点罗?????*/force - whether to overwrite existing file/*10g新增的参数,默认值为n ,y表示允许覆盖*/OPERS(opt):There are no spaces around the equal-to (=) character.实例如下图,生成实例为zhqhdb的密码文件,密码为handsome--修改密码:--演示将entries 改为1,然后将多个用户设置为sysdba或sysoper--给多个用户赋予sysdba角色会出现错误:ORA-01996: GRANT failed: password file '' is full --再次查看orapwzhqhdb发现多出几行,即当设置的时候多出了个用户--注意不要轻易删掉密码文件,以免将其他账户的信息也删除六、密码文件内容修改的几种方式1.使用orapwd建立,修改密码文件,不建议使用2.使用alter user sys identified by <>3.使用grant sysdba to <> 或grant sysoper to <> 或revoke sysdba |sysoperfrom <>七、查看密码文件内容[oracle@wangdm /u01/app/oracle/product/10.2.0/db/dbs]$ strings orapwzhqhdb]\[ZORACLE Remote Password fileINTERNALAB27B53EDC5FEF418A8F025737A9097A--当sys密码不记得可以使用OS系统身份认证登陆到sqlplus,再使用alter user修改密码SQL> alter user sys identified by handsome;User altered--再次查看密码文件与上一次对比,已经发生变化SQL> ho strings orapwzhqhdb]\[ZORACLE Remote Password fileINTERNAL42998405ACC042404273B1DBEBCE9A20--通过授予权限来修改密码,密码文件中多出了scott的信息SQL> grant sysdba to scott;Grant succeeded.SQL> ho strings orapworcl]/[ZORACLE Remote Password fileINTERNALAB27B53EDC5FEF418A8F025737A9097ASCOTTF894844C34402B67--注意此处中登陆后,显示的账户信息还是sys而不是hs_user,但此时的hs_user已经具备了sys权限八、sysdba 与sysoper的区别SQL> select * from system_privilege_map where name like '%SYS%';PRIVILEGE NAME PROPERTY---------- ---------------------------------------- -----------3 ALTER SYSTEM 0-4 AUDIT SYSTEM 0-83 SYSDBA 0-84 SYSOPER 0--下面的链接是两者不同的权限说明/docs/cd/B19306_01/server.102/b14231/dba.htm#sthref137 The manner in which you are authorized to use these privileges depends upon the method of authentication that you use. When you connect with SYSDBA or SYSOPER privileges,you connect with a default schema,not with the schema that is generally associated with your username.For SYSDBA this schema is SYS; for SYSOPER the schema is PUBLIC.--两者的schema不同SQL> show userUSER is "SYS"SQL> conn / as sysoperConnected.SQL> show userUSER is "PUBLIC"--查看密码文件视图,可以得到哪些用户为sysdba,哪些用户为sysoper--下面演示了使用不同的角色来登陆。