用oracle的SQL Developer更改密码
我的许多用户不使用sqlplus。 我不能给他们改变用户。 我们每60天过期一次密码。
我不能得到sqlplus命令“密码”在SQL开发工作。
- 当我运行时,我得到一个无效的命令错误
- 当我运行脚本时,没有任何反应。
因为我们有很多数据库,所以我不想给他们写一个包来更改他们的密码。 我有更好的select吗?
使用SQL Developer更新密码的正确语法是:
由“new_password”标识的alter user user_namereplace“old_password” ;
您可以在此查看更多选项: http : //docs.oracle.com/cd/B28359_01/server.111/b28286/statements_4003.htm#i2058207
在SQL工作表中:
键入“密码”(不带引号)突出显示,按CTRL + ENTER。 密码更改屏幕出现。
SQL Developer有一个内置的重置密码选项,可能适合您的情况。 它还需要将Oracle Instant Client添加到工作站。 当SQL开发人员启动时即时客户端在path中时,您将获得以下选项:
Oracle Instant Client不需要pipe理员权限即可安装,只需写入目录并将该目录添加到用户path即可。 大多数用户都有权这样做。
回顾:为了在Oracle SQL Developer上使用重置密码:
- 您必须将Oracle Instant Client解压到目录中
- 您必须将Oracle Instant Client目录添加到用户path
- 您必须重新启动Oracle SQL Developer
此时您可以右键单击数据源并重置您的密码。
另请参阅oracle文档中的注释: http : //docs.oracle.com/cd/E35137_01/appdev.32/e35117/dialogs.htm#RPTUG41808
使SQL Developer(在4.0.1版上testing)识别和使用OS X上的即时客户端的另一种configuration是:
- 在首选项 – >数据库 – >高级 – >使用Oracle客户端中设置Instant Client的path
- validation实例客户端可以使用首选项对话框中的configuration… – >testing…选项成功加载
-
(OS X)请参阅此问题以解决与DYLD_LIBRARY_PATH环境variables有关的问题。 我使用了下面的命令,然后重新启动了SQL Developer来获取更改:
$ launchctl setenv DYLD_LIBRARY_PATH / path / to / oracle / instantclient_11_2
您的用户仍然可以通过“由newpassword标识的alter user onlyTheirUserName ”更改其密码。 他们不必具有更改自己的密码的ALTER USER权限。
根据pipe理员设置,您可能需要使用REPLACE选项指定旧密码
alter user <username> identified by <newpassword> replace <oldpassword>
为了说清楚一点:
如果用户名:abcdef和旧密码:a123b456,新密码:m987n654
alter user abcdef由m987n654标识replace为a123b456 ;
我确认这在SQL Developer 3.0.04中的作品。 我们的密码必须有一个特殊的字符,所以在我们的情况下,需要双引号的string。 当然,这只有在密码尚未过期并且当前已login的情况下才有效。
ALTER USER MYUSERID IDENTIFIED BY "new#password" REPLACE "old#password"
我意识到有很多答案,但我find了一些可能对某些人有帮助的解决scheme。 我遇到了同样的问题,我在我的本地计算机上运行oracle sql开发,我有一堆用户。 我碰巧记得我的一个用户的密码,我用它来重置其他用户的密码。
脚步:
-
使用有效的用户和密码连接到数据库,在我的情况下,我所有的用户过期,除了“系统”,我记得密码
-
find树中的“Other_users”节点,如下图所示
3.在“Other_users”树中find你想要重置密码的用户,并右键单击该注释并select“编辑用户”
4.在编辑用户对话框中填写新的密码,然后点击“应用”。 确保你没有选中“密码过期(用户必须改变下一次login)”。
这对我很有用,它不如其他解决scheme,因为您需要能够login到至less一个帐户,但它确实工作。
你可以在DBA_USERS表中find像这样的用户
SELECT profile FROM dba_users WHERE username = 'MacsP'
现在转到sys / system(pipe理员)并使用查询
ALTER USER PRATEEK IDENTIFIED BY "new_password" REPLACE "old_password"
validation帐户状态只需要通过
SELECT * FROM DBA_USERS.
你可以看到你的用户的状态。
您现在可以在SQL Developer 4.1.0.17中执行此操作,假设您有另一个具有pipe理权限的帐户,则不需要PL / SQL:
- 使用另一个pipe理用户在SQL Developer 4.1.0.17中创build到数据库的连接
- 连接后展开“其他用户”部分,然后右键单击密码已过期的用户。 select“编辑用户”。
- 取消勾选“密码过期…”checkbox,为用户input新密码,然后点击“保存”。
- 任务完成! 您可以通过连接密码已过期的用户进行testing,以确认它现在再次有效。
内置的重置密码选项可能不适用于用户。 在这种情况下,可以使用以下SQL语句重置密码:
ALTER user "user" identified by "NewPassword" replace "OldPassword";
有另一种方法来通过命令提示符 重置密码 …
1)在开始菜单中进入Oracle数据库文件夹(在我的情况下Oracle数据库11g速成版)。
2)在该文件夹中单击 “运行SQL命令行”
Oracle数据库文件夹映像
3)input“ 连接用户名/密码 ”(您的用户名和旧密码不带引号)
4)显示的信息是…
错误:ORA-28001:密码已过期
更改hr的密码
– >新密码:
input用户名,密码图片
5)input新的密码
6)重新input新的密码
7) 显示的消息是…
密码已更改连接。
SQL>
8)转到Sql开发人员 – >input新密码 – >连接
对于那些可能没有为sysdba或sys设置密码并定期使用第三方客户端的人来说是一个注意事项。 这里有一些关于login到命令行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
现在,您需要使用旧凭证连接到数据库。 你可以在你的输出中findOracle提供的模板:
Use "connect username/password@XE" to connect to the database.
在我的情况下,我有用户“oracle”与密码“甲骨文”,所以我的input看起来像
connect oracle/oracle@XE
完成。 现在input你的新密码两次。 那么如果你不想让你的密码过期,你可以运行
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;