关于SYS密码忘记,或者明明正确,却报密码不正确的解决方案

1      说明

当我们使用PL/SQL工具以SYS用户登录数据库时,发现提示密码不正确:

ORA-01017: invalid username/password; logon denied

怎么办?

2      直接修改登录密码

使用这个方法前,必须和数据库管理员确认,确实是不记得密码了,并且修改之后要告知其余使用人,密码被修改,防止挨骂~~

在数据库服务器,使用sqlplus / as sysdba,通过操作系统认证,直接登录数据库,这里不需要验证密码,然后修改SYS用户密码:

alter user sys identified by oracle;

这里是把SYS用户密码设置成了oracle。

3      修改认证方式

Oracle登录验证方式包括口令验证和操作系统认证。

操作系统认证,就是Oracle认为操作系统用户是安全的,在使用sqlplus登录时,不校验用户密码,直接登录。

口令认证,就是指Oracle认为操作系统用户是不安全的,需要通过口令文件进行账号密码验证。Oracle的口令文件一般存放在$ORACLE_HOME/dba/目录下,名字为orapw+sid。

Oracle通过初始化参数remote_login_passwordfile限制口令文件的使用,这里详细介绍下:

1)NONE

remote_login_passwordfile=none表示,登录时禁用口令文件验证,sysdba用户只能通过操作系统认证登录数据库,其他方式的登录,比如PL/SQL,就会报前面提到的ORA-01017错误。

操作系统认证方式涉及sqlnet.ora($ORACLE_HOME/network/admin目录下)中的参数SQLNET.AUTHENTICATION_SERVICES:

a) NONE:关闭操作系统认证,只能通过口令文件认证;----

b) ALL: linux/unix平台下,采用操作系统认证,但远程sysdba登录仍然需要口令文件认证。

c) NTS: windows平台下操作系统认证。

2) EXCLUSIVE

remote_login_passwordfile=exclusive表示,独占模式使用口令文件,这个是默认值,用在单数据库的单实例环境中。这种模式下,可以对sysdba用户进行增加、修改、删除,同时可以修改sysdba用户密码,记录到密码文件中。

查看被授予sysdba权限的用户:

SELECT USERNAME FROM V$PWFILE_USERS WHERE SYSDBA=‘TRUE‘;

口令文件中添加/删除sysdba权限用户

REVOKE SYSDBA FROM non-SYS-user;

GRANT SYSDBA TO non-SYS-user;

3) SHARED

这种模式下,可以在多个数据库间共享使用口令文件,口令文件不可被修改,包括不能修改sys用户密码。Oracle建议首先将需要sysdba权限的用户在excusive模式下设置好,然后修改remote_login_passwordfile修改为shared共享口令文件。

修改方法:

alter system set remote_login_passwordfile=shared scope=spfile;

然后重启数据库。

通过上面分析,我们可以看到,如果PL/SQL登录时,明明密码是正确的,但是就是登录不进去,并且说密码不正确,我们就要在数据库服务器上使用sqlplus登录,然后查看系统参数remote_login_passwordfile是否启动了可口令文件验证,一般应该设置为exclusive。同时关注sqlnet.ora的参数SQLNET.AUTHENTICATION_SERVICES。

4      小结

SYS用户忘记密码,或者明明密码正确,但是登录时报密码错误,不用愁了。

时间: 2024-10-18 14:17:27

关于SYS密码忘记,或者明明正确,却报密码不正确的解决方案的相关文章

先前设定的sa密码忘记了,如何修改sa密码?

在window身份验证登陆后,新建查询,输入以下代码就可以修改sa密码了: use master go exec sp_password null,'123456','sa' go 先前设定的sa密码忘记了,如何修改sa密码?

Oracle 11g sys,system 密码忘记设置解决办法

原文:Oracle 11g sys,system 密码忘记设置解决办法 1.启动sqlplus 2.请输入用户名:  sqlplus/as sysdba 3.输入口令: 直接回车 4.连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL>

Mysql的Root密码忘记,查看或修改的解决方法

Mysql的Root密码忘记,查看或修改的解决方法:1.首先启动命令行2.在命令行运行:taskkill /f /im mysqld-nt.exe3.继续在命令行运行:mysqld-nt --skip-grant-tables4.新开一个命令行运行:mysql -u root (如果没有配置mysql的bin环境变量的话需要切换到bin目录下执行此语句) 如果不想改密码,只是想看原来的密码的话.可以在命令行执行这个语句 select host,user,password from mysql.u

mysql root密码忘记重置

1.修改/etc/my.cnf文件 找到mysqld选项,增加子项skip-grant-tables 2.重新启动mysql服务 service mysqld restart 3.进入mysql 在shell中执行mysql -u root 4.设置root新密码 update mysql.user set password=password('newpassword') where user='root'; flush privileges; 5.删除步骤1中进行的操作. 6.再次执行步骤2.

Ubuntu 14.04中root 密码忘记解决方法[转载+17.04亲测可用]

Ubuntu 14.04中root 密码忘记解决方法 Ubuntu 14.04中root 密码忘记解决方法 方法一: 如果用户具有sudo权限,那么直接可以运行如下命令: #sudo su root #passwd #更改密码 或者直接运行sudo passwd root命令就可以直接更改root密码. 有关sudo su的区别: 1.共同点:都是root用户的权限: 2.不同点:su仅仅取得root权限,工作环境不变,还是在切换之前用户的工作环境:sudo是完全取得root的权限和root的工

Ubuntu root 密码忘记-恢复

Ubuntu root 密码忘记-恢复 2012-04-27 11:09:22 分类: LINUX 方法一: 如果用户具有sudo权限,那么直接可以运行如下命令: #sudo su root #passwd #更改密码 或者直接运行sudo passwd root命令就可以直接更改root密码. 有关sudo su的区别: 1.共同点:都是root用户的权限:   2.不同点:su仅仅取得root权限,工作环境不变,还是在切换之前用户的工作环境:sudo是完全取得root的权限和root的工作环

电脑开机密码忘记了怎么办?开机密码修改方法

电脑开机密码忘记了怎么办?如果我们开机的时候,界面上没有出现Administrator这个用户名,那么我们就在这个界面状态下按住"Ctrl"+"Alt"键,然后再连续按两次"Delete"键这是会出现一个windows的经典登录界面,用户名就是Administrator,密码为空. 那电脑开机密码忘记了怎么办?我们怎么破解电脑开机密码呢?今天小编为你详细解答. 电脑开机密码忘记了怎么办方法一: 电脑开机密码忘记了怎么办?如果我们开机的时候,界面上

tomcat服务器管理界面用户名和密码忘记

tomcat服务器http://localhost:8080/ 这样访问,点击Manager App后要求输入用户名和密码才能进入管理应用界面 我忘记了用户名和密码 解决办法: 进入apache-tomcat-7.0.53\conf目录下 打开tomcat-users.xml这个文件 进行如下配置 在</tomcat-users>节点的前面 <role rolename="manager-gui"/> <user username="admin&

夺命雷公狗---linux NO:35 linux下的mysql密码忘记解决方案

如果密码忘记了,我们直接来杀掉进程.. 这是一个典型密码错误的报错.. 那么我们直接使用pkill来干掉他的进程.. 然后来检查检查: 已经成功的干掉了.然后就开始 启动mysql: ./mysqld --skip-grant-table 回车如下所示: 别ctrl + c  噢,否则他会被关掉的.直接从新打开多一个窗口,如下所示: 直接启动mysql即不用密码就进来了... use mysql 数据库,修改 users 表, authencation_string 字段. 然后在里面寻找到 u