remote_login_passwordfile参数 2012-11-02 16:54:10
分类: Oracle
转自:http://www.dbasky.com/oracle/remote_login_passwordfile_sqlnet_ora.html
今天复习的一个知识点:
remote_login_passwordfile,一直对这个参数的认识只是停留在它控制是否sys用户能在远程使用密码文件认证登录,对于他的值设置,适用情况没有更深的研究,今天就打算做一些小实验来探索他的使用。
本次测试基于windows的oracle 10g,可能测试结果会有偏差。
首先阅读10g reference文档中的描述:
作用:这个参数控制oracle是否检查密码文件 取值范围:none,shared(默认) none:oracle会忽略任何密码文件,此时有权限的用户(比如sys)必须使用操作系统认证。 shared:一个或多个数据库可以使用密码文件,这时密码文件中可以包含sys和非sys用户 exclusive:这个参数10g中取消了,但为了向后兼容,你可以设置,与shared功能一样。 rac中多个实例应该有相同的值。
在oracle数据库没有启动之前,oracle内的用户是无法通过oracle来认证的,sys用户要启动oracle,就必须使用别的认证方式:一是密码文件认证,二是操作系统认证。
操作系统认证:通常要求该用户属于本地DBA组,然后通过操作系统认证登录到oracle,从而来启动数据库。
密码文件认证:如果是远程以sys用户登录来启动数据库,那么只有通过密码文件认证来登录了。
这个时候remote_login_passwordfile就来控制是否可以远程来登录。
1.remote_login_passwordfile = NONE
此时不能使用任何密码文件来登录数据库,只能在本地通过操作系统认证来起停数据库,远程sysdba登录是不被允许的,即使你$ORACLE_HOME/dbs下有密码文件。这样类似在别的机器上使用sqlplus sys/oracle@orcl as sysdba语句的登录都会报错。此时,即使你在本地机器上OEM database control也是会报错的,提示无效的用户名密码,实际也是不能用密码文件验证身份。
2.remote_login_passwordfile = SHARED
此时可以在远程使用密码文件认证来登录数据库,如果本地没有密码文件,或者密码文件丢失,也是不能登录成功的,此时可以使用orapwd重新创建密码文件。remote_login_passwordfile = SHARED时,更改sys用户密码是不被允许的。同时授予除sys外的其他用户sysdba权限也是不允许的。此时可以通过密码文件在本机成功登录OEM database control。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
SQL> show parameter pass
NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ remote_login_passwordfile string SHARED
SQL> select * from v$pwfile_users;
USERNAME SYSDB SYSOP ------------------------------ ----- ----- SYS TRUE TRUE
SQL> alter user sys identified by oracle;
alter user sys identified by oracle * ERROR at line 1: ORA-28046: Password change for SYS disallowed
SQL> grant sysdba to test;
grant sysdba to test * ERROR at line 1: ORA-01999: password file cannot be updated in SHARED mode
|
windows系统中,shared模式下打开数据库的话不能删除pwd.ora文件,看来oralce会锁定这个文件给多个数据库使用。
2.remote_login_passwordfile = EXCLUSIVE
oracle 10g文档中说exclusive与shared有相同的行为,可是我做的实验的结果并不是这样,可见oracle的文档也不能全信。11g中这个错误被修正了。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
|
SQL> alter system set remote_login_passwordfile=exclusive scope=spfile;
System altered.
SQL> shutdown immediate;
Database closed. Database dismounted. ORACLE instance shut down.
SQL> startup
ORA-32004: obsolete and/or deprecated parameter(s) specified ORACLE instance started. Total System Global Area 264241152 bytes Fixed Size 1296160 bytes Variable Size 163580128 bytes Database Buffers 92274688 bytes Redo Buffers 7090176 bytes Database mounted.
Database opened. SQL> SQL> SQL> show parameter remote NAME TYPE VALUE ------------------------------------ ----------- ------------------------ remote_archive_enable string true remote_dependencies_mode string TIMESTAMP remote_listener string remote_login_passwordfile string EXCLUSIVE remote_os_authent boolean FALSE remote_os_roles boolean FALSE SQL> SQL> SQL> grant sysdba to test; Grant succeeded. SQL> SQL> show parameter compati NAME TYPE VALUE ------------------------------------ ----------- ------------------------ compatible string 10.2.0.3.0 plsql_v2_compatibility boolean FALSE
|
当我又重新置会shared 模式时
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
|
SQL> alter system set remote_login_passwordfile =shared scope=spfile
System altered.
SQL> shutdown immediate;
Database closed. Database dismounted. ORACLE instance shut down . SQL> startup
ORA-32004: obsolete and/or deprecated parameter(s) specified
ORACLE instance started. Total System Global Area 264241152 bytes Fixed Size 1296160 bytes Variable Size 163580128 bytes Database Buffers 92274688 bytes Redo Buffers 7090176 bytes Database mounted. Database opened.
SQL> show parameter pass NAME TYPE VALUE ------------------------------------ ----------- --------- remote_login_passwordfile string SHARED
SQL> select * from v$pwfile_users;
USERNAME SYSDB SYSOP ------------------------------ ----- ----- SYS TRUE TRUE TEST TRUE FALSE
SQL> SQL> grant sysdba to test;
grant sysdba to test *
ERROR at line 1: ORA-01999: password file cannot be updated in SHARED mode
SQL> revoke sysdba from test;
revoke sysdba from test *
ERROR at line 1: ORA-01999: password file cannot be updated in SHARED mode
|
分享到:
相关推荐
标题中的问题“ORACLE SYS.DBMS_REGISTRY_SYS has errors”指的是在Oracle数据库系统中,系统包BODY `SYS.DBMS_REGISTRY_SYS` 出现错误,导致了一系列的PL/SQL调用失败。这种错误通常与数据库的元数据注册功能有关,...
- 命令行方式直接使用`SQLPLUS / AS SYSDBA`命令尝试登录。 - 如果没有指定用户名和密码,则会自动尝试通过OS验证方式登录。 2. **使用PL/SQL Developer登录**: - 在PL/SQL Developer中,可以直接输入`SYS`作为...
1. **以SYSDBA身份登录**:使用`sqlplus "/as sysdba"`命令启动SQL*Plus。 2. **限制模式启动数据库**:运行`startup restrict`命令以限制模式启动数据库,这将阻止用户连接,确保在验证和重编译期间不会干扰其他...
接着,打开cmd,登录sqlplus / as sysdba;修改system和sys密码:alter user system identified by zlsoft;alter user sys identified by zlsoft。如果未执行上述第二步,登录PL/SQL会报用户名/口令无效。 四、...
5. 之后,你可以尝试使用解锁后的用户登录。 第三种情况,当你在PL/SQL Developer中尝试以`scott/tiger`登录时,可能会遇到账户被锁定的问题。解决方法如下: 1. 启动DOS命令行,输入`sqlplus`,然后以`system`...
当以sys用户登录时,务必使用`sysdba`角色,以执行数据库维护和管理任务。其他用户应根据职责分配适当的权限,避免不必要的安全风险。 总的来说,登录Oracle数据库的过程涉及到验证身份、指定服务名以及可能的角色...
2. 使用sys用户的DBA权限连接,格式为`conn sys/your_sys_password as sysdba`,将your_sys_password替换为sys用户的实际密码。 3. 登录成功后,输入`alter user scott identified by tiger;`来重置scott用户的密码...
远程登录Oracle 12C的sys和system用户时报ORA-01017错误,而本地登录则无异常,可通过以下步骤解决: 1. **检查监听状态**:确保监听器运行正常,可以使用`tnsping`命令进行验证。例如:`tnsping 服务名`。 2. **...
此时可以通过sqlplus以sysdba身份登录,然后使用`ALTER USER`命令重置密码,例如`ALTER USER system IDENTIFIED BY manager;`和`ALTER USER sys IDENTIFIED BY manager;`。 Oracle数据库中,rownum是用于分页查询的...
1. **使用SYS用户登录** 如果忘记了`SYSTEM`用户的密码,可以使用`SYS`用户登录并修改密码: ```sql sqlplus sys/your_password as sysdba alter user system identified by new_password; ``` 2. **使用...
- 在命令行中使用`sqlplus / as sysdba`命令来启动Oracle实例。 - 可以通过监听器管理工具lsnrctl来控制监听器的服务状态。 **卸载Oracle:** - 首先停止所有Oracle服务。 - 卸载Oracle客户端和服务。 - 清理注册表...
因此用当前的System信息是不能恢复过来的,在AUL/MyDUL中可以当作没有System时的情况来处理,在下面的命令中, 我们用Truncate后的数据对象号就不能进行恢复, 而使用Truncate以前的就可以, 当然空间不能被重新利用了是...
问题 1:Oracle 服务器进入 PL/SQL Developer 时报 ora-01033 错误 解决方法:首先,进入 CMD,执行 set ORACLE_SID=fbms,确保连接到正确的 SID;然后,运行 sqlplus "/as sysdba",停止服务,观察启动时有无数据...
- 首先使用 `system` 用户登录。 - 执行解锁命令: ```sql alter user scott account unlock; ``` 2. **重置密码**: - 在登录状态下,使用 `password` 命令来重置密码: ```sql password scott ``` ####...
- 利用SQL*Plus工具进行远程连接,使用sys用户时需要使用assysdba模式,例如: ```plaintext sqlplus /nolog connect /as sysdba ``` - 对于普通用户,则使用常规方式连接。 #### 三、常见问题与解决方法 1....
- **命令行登录**:可以通过命令行使用`sqlplus`命令登录Oracle数据库。对于超级管理员(例如sys用户),需要在用户名/密码后面加上`as sysdba`,以获取最高级别的权限。 - **查看当前用户**:使用`show user`命令...
- 可以通过指定身份登录:`SYS/DHEE@SHAIN AS SYSDBA` 或 `SYS/DHEE@SHAIN AS SYSOPER`。 - **SYSDBA**:具有完全的数据库管理权限,包括启动、关闭数据库等。 - **SYSOPER**:具有较高级别的管理权限,但无法...
- **版本信息查询**: 使用`$sqlplus /as sysdba`命令可以连接到Oracle数据库,并通过`select * from v$version;`获取版本信息。例如: ``` SQL> select * from v$version; BANNER -----------------------------...
如果你只是想启动SQL*Plus但不立即登录数据库,可以使用: ``` sqlplus /nolog ``` 这种方式下,你可以先进行一些预处理,然后使用`connect`命令登录数据库: ``` SQL> connect sys/oracle@127.0.0.1/icpdb ``` ...