我的许多用户不使用 SQLPlus。我不能给他们更改用户。我们每 60 天过期一次密码。
我无法让 SQLPlus 命令“密码”在 SQL 开发人员中工作。
- 当我点击运行时,我得到一个无效的命令错误
- 当我点击运行脚本时,什么也没有发生。
我不想给他们写一个包来改变他们的密码,因为我们有很多数据库。我有更好的选择吗?
我的许多用户不使用 SQLPlus。我不能给他们更改用户。我们每 60 天过期一次密码。
我无法让 SQLPlus 命令“密码”在 SQL 开发人员中工作。
我不想给他们写一个包来改变他们的密码,因为我们有很多数据库。我有更好的选择吗?
使用SQL Developer更新密码的正确语法是:
alter user
user_name
identified by
new_password
replace
old_password
;
您可以在此处查看此命令的更多选项:ALTER USER-Oracle DOCS
在 SQL 工作表中:
输入“密码”(不带引号)
突出显示,点击CTRL+ ENTER。
密码更改屏幕出现。
SQL Developer 有一个内置的重置密码选项,可能适用于您的情况。它还需要将 Oracle Instant Client 添加到工作站。当 SQL 开发人员启动时即时客户端位于路径中时,您将启用以下选项:
Oracle Instant Client 不需要管理员权限即可安装,只需写入目录并将该目录添加到用户路径即可。大多数用户都有权执行此操作。
回顾:为了在 Oracle SQL Developer 上使用重置密码:
此时,您可以右键单击数据源并重置密码。
有关完整的演练,请参阅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 上的 Instant Client 的另一种配置是:
(OS X) 请参阅此问题以解决与 DYLD_LIBRARY_PATH 环境变量相关的问题。我使用了以下命令,然后重新启动 SQL Developer 以获取更改:
$ launchctl setenv DYLD_LIBRARY_PATH /path/to/oracle/instantclient_11_2
您的用户仍然可以通过“alter user onlyTheirUserName identify by newpassword”来更改他们的密码。他们不必具有 ALTER USER 权限来更改自己的密码。
根据管理员设置,您可能必须使用 REPLACE 选项指定旧密码
alter user <username> identified by <newpassword> replace <oldpassword>
说清楚一点:
如果用户名:abcdef,旧密码:a123b456,新密码:m987n654
更改由m987n654识别的用户abcdef替换a123b456;
我意识到有很多答案,但我找到了一个可能对某些人有帮助的解决方案。我遇到了同样的问题,我在本地计算机上运行 oracle sql develop 并且我有很多用户。我碰巧记得我的一个用户的密码,我用它来重置其他用户的密码。
脚步:
使用有效的用户名和密码连接到数据库,在我的情况下,我的所有用户都已过期,除了“系统”,我记得密码
在树中找到“Other_users”节点,如下图所示
3.在“Other_users”树中找到您要重置密码的用户,然后右键单击注释并选择“编辑用户”
4.在编辑用户对话框中填写新密码,然后单击“应用”。确保您未选中“密码已过期(用户必须更改下次登录)”。
这对我有用,它不如其他解决方案好,因为您需要能够登录至少一个帐户,但它确实有效。
我确认这在 SQL Developer 3.0.04 中有效。我们的密码需要有一个特殊字符,所以在我们的例子中需要双引号字符串。当然,这只适用于密码尚未过期且您当前已登录的情况。
ALTER USER MYUSERID
IDENTIFIED BY "new#password"
REPLACE "old#password"
内置的重置密码选项可能对用户不起作用。在这种情况下,可以使用以下 SQL 语句重置密码:
ALTER user "user" identified by "NewPassword" replace "OldPassword";
还有另一种通过命令提示符重置密码的方法...
1) 转到开始菜单中的 Oracle 数据库文件夹(在我的例子中是 Oracle 数据库 11g 快捷版)。
2)在该文件夹中单击“运行SQL命令行”
3)输入“ connect username/password ”(你的用户名和旧密码不带引号)
4) 显示的消息是...
错误:ORA-28001:密码已过期
修改hr密码
--> 新密码:
5) 输入新密码
6) 重新输入新密码
7)显示的消息是...
密码已更改 已连接。
SQL>
8) GO TO Sql developer --> 输入新密码 --> 已连接
您可以在 DBA_USERS 表中找到用户,例如
SELECT profile
FROM dba_users
WHERE username = 'MacsP'
现在转到系统/系统(管理员)并使用查询
ALTER USER PRATEEK
IDENTIFIED BY "new_password"
REPLACE "old_password"
要验证帐户状态,只需通过
SELECT * FROM DBA_USERS.
你可以看到你的用户的状态。
您现在可以在SQL Developer 4.1.0.17中执行此操作,不需要 PL/SQL,假设您有另一个具有管理权限的帐户:
给那些可能没有设置 sysdba 或 sys 密码并经常使用第三方客户端的人的注意事项。这是一些有关在没有密码的情况下登录命令行 sqlplus 的信息,这对我有帮助。顺便说一句,我正在使用 Fedora 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;