使用 OracleSQLDeveloper 更改密码

我的许多用户不使用 SQLPlus。我不能给他们更改用户。我们每60天过期的密码。

我无法在 SQL 开发人员中使用 SQLPlus 命令“ password”。

  1. 当我点击 run 时,我得到一个无效的命令错误
  2. 当我按下运行脚本时,什么都没有发生。

我不想给他们写一个修改密码的软件包,因为我们有很多数据库。我有更好的选择吗?

639671 次浏览

您的用户仍然可以通过“通过 newpassword 更改用户 只有他们的用户名”来更改他们的密码。他们不必拥有 ALTERUSER 特权来更改自己的密码。

根据管理设置的不同,可能必须使用 REPLACE 选项指定旧密码

alter user <username> identified by <newpassword> replace <oldpassword>

先说清楚:

如果用户名: abcdef 和旧密码: a123b456,则新密码: m987n654

改变由 M987n654识别的用户 当然取代 A123b456;

使用 SQL 开发人员更新密码的正确语法是:

alter user user_name identified by new_password replace old_password ;

您可以在这里为这个命令检查更多选项: 更改用户-Oracle 文档

我确认这在 SQL Developer 3.0.04中是可行的。我们的密码需要有一个特殊的字符,因此在我们的例子中需要使用双引号字符串。当然,这只有在密码尚未过期并且您当前正在登录的情况下才有效。

ALTER USER MYUSERID
IDENTIFIED BY "new#password"
REPLACE "old#password"

在 SQL 工作表中:

  • 输入“ password”(不要引号)

  • 高光,按 CTRL + ENTER

  • 密码更改屏幕出现。

SQLDeveloper 有一个内置的重置密码选项,可能适合您的情况。它还需要将 OracleInstantClient 添加到工作站。当 SQL 开发人员启动时,即时客户机处于路径中时,将启用以下选项:

SQL Developer: Drop Down menu showing reset password option

Oracle Instant Client 不需要管理员权限来安装,只需要能够写入目录并将该目录添加到用户路径。大多数用户都有这样做的特权。

概述: 为了在 OracleSQLDeveloper 上使用重置密码:

  1. 必须在目录中解压缩 Oracle 即时客户端
  2. 必须将 OracleInstantClient 目录添加到用户路径
  3. 然后必须重新启动 OracleSQLDeveloper

此时,您可以右键单击数据源并重置密码。

请参阅 http://www.thatjeffsmith.com/archive/2012/11/resetting-your-oracle-user-password-with-sql-developer/以获得完整的演练

还可以参见 Oracle 文档中的注释: http://docs.oracle.com/cd/E35137_01/appdev.32/e35117/dialogs.htm#RPTUG41808

让 SQL Developer (在版本4.0.1上测试)识别和使用 OS X 上的即时客户端的另一种配置是:

  1. 在首选项-> 数据库-> 高级-> 中设置到即时客户端的路径 使用 Oracle 客户端
  2. 在首选项对话框中,使用 Configure...-> Test... 选项验证可以成功加载 Instance Client
  3. (OS X)请参阅 这个问题以解决与 DYLD _ librARY _ PATH 环境变量相关的问题。我使用了以下命令,然后重新启动 SQLDeveloper 以获取更改:

    $launchctl setenv DYLD _ LIBRARY _ PATH/path/to/oracle/instclient _ 11 _ 2

内置的重置密码选项可能不适用于用户。在这种情况下,可以使用以下 SQL 语句重置密码:

ALTER user "user" identified by "NewPassword" replace "OldPassword";

您可以在 DBA _ USERS 表中找到用户,如

SELECT profile
FROM dba_users
WHERE username = 'MacsP'

现在转到 sys/system (管理员)并使用 query

ALTER USER PRATEEK
IDENTIFIED BY "new_password"
REPLACE "old_password"

要验证帐户状态,只需通过

SELECT * FROM DBA_USERS.

你可以看到你的用户的状态。

您现在可以在 SQL Developer 4.1.0.17中执行此操作,不需要 PL/SQL,假设您有另一个具有管理特权的帐户:

  1. 在 SQL Developer 4.1.0.17中使用其他管理用户创建到数据库的连接
  2. 连接后展开“其他用户”部分,右键单击密码已过期的用户。选择“编辑用户”。
  3. 取消选中“密码过期...”复选框,为用户键入一个新密码,然后点击“保存”。
  4. 任务完成!您可以通过与密码已过期的用户连接进行测试,以确认它现在再次有效。

还有另一种方法通过 命令提示符重设密码..。

1)转到开始菜单中的 Oracle 数据库文件夹(在我的情况下是 Oracle 数据库11g Express Edition)。

2)在该文件夹 点击内“运行 SQL 命令行”

Oracle 数据库文件夹映像

3) 类型连接用户名/密码”(没有引号的用户名和旧密码)

4)显示的信息是..。

错误: ORA-28001: 密码已过期

更改 hr 的密码

新密码:

输入用户名,密码图像

5)输入新密码

6)重新输入新密码

7) 显示的信息是..。

密码改了 连接。

SQL >

8)转到 Sql 开发人员—— > 键入新密码—— > 连接

对于那些可能没有 sysdba 或 sys 的 set 密码并且经常使用第三方客户机的人,请注意。 下面是一些关于在没有密码的情况下登录到命令行 sqlplus 的信息。 顺便说一下,我用的是软呢帽21。

locate sqlplus

在我的例子中,sqlplus 位于这里:

/u01/app/oracle/product/11.2.0/xe/config/scripts/sqlplus.sh

快跑

cd /u01/app/oracle/product/11.2.0/xe/config/scripts
./sqlplus.sh / as sysdba

现在需要使用旧凭据连接到数据库。 您可以在输出中找到 Oracle 提供的模板:

Use "connect username/password@XE" to connect to the database.

在我的例子中,我有用户“ oracle”和密码“ oracle”,所以我的输入看起来像

connect oracle/oracle@XE

好了,现在输入两次新密码。 然后,如果您不希望您的密码过期,您可以运行

ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

我意识到答案有很多,但我找到了一个可能对某些人有帮助的解决方案。我遇到了同样的问题,我在本地计算机上运行 oraclesql 开发,我有一些用户。我碰巧记得我的一个用户的密码,我用它来重置其他用户的密码。

步骤:

  1. 使用有效的用户和密码连接到数据库,在我的情况下,除了“系统”之外,所有用户都过期了,而且我记得那个密码

  2. 在树中找到“ Other _ users”节点,如下图所示

enter image description here

3.在“ Other _ Users”树中找到您想要重置密码的用户,然后右键单击注释并选择“ Edit Users”

enter image description here

4.在编辑用户对话框中填写新密码,然后点击“应用”。确保您没有选中“密码过期(用户必须更改下一次登录)”。

enter image description here

这对我来说是有效的,它不像其他解决方案那么好,因为你需要能够登录至少一个帐户,但它确实有效。

试试这个解决方案 如果重置密码选项(SQLDeveloper 的)不起作用:

步骤1: 打开“运行 SQL 命令行”(从“开始”菜单中,该菜单附带 SQLDeveloper 安装包)

步骤2: 运行以下命令:

enter image description here

注意: 如果密码已过期,Changing password for <user>选项将自动出现。

我使用的是21.2.0.187版本(2021年7月发布)。

有一个重置按钮,使您能够将密码重置为新密码,如下图所示。你可以通过鼠标右键连接到它。

我休息的密码,然后用新的密码登录。

enter image description here enter image description here