如何在Oracle数据库上为服务帐户自动更新密码

时间:2017-09-15 16:41:54

标签: python oracle automation passwords

这更像是一个概念问题。我是一个监控团队,我们目前正在开始监控Oracle数据库。该公司要求每90天更新一次密码。我们需要监控1000个数据库,并且不希望每隔90天就进入所有数据库并更改密码。

自动化此过程的最佳方法是什么?我正在考虑尝试编写一个python脚本来连接数据库,然后更新密码;我对甲骨文知之甚少,甚至可能吗?是否有一个工具可以做这样的事情?

寻找有关如何自动执行此过程的一些首选方法或建议。

由于

2 个答案:

答案 0 :(得分:0)

首先,您可以查看有关用户帐户的内容:

SELECT username, user_id, account_status, expiry_date
         FROM dba_users ;

e.g。

USERNAME      USER_ID      ACCOUNT_STATUS      LOCK_DATE      EXPIRY_DATE      CREATED
A      1      OPEN      [NULL]      12/28/03      09/29/03
B      2      OPEN      [NULL]      04/19/04      01/20/04
C      3      EXPIRED      [NULL]      06/22/04      06/26/01

您可以按如下方式更改用户:

ALTER USER test VALID UNTIL 'Jan 31 2020';

Oracle会要求EXPIRED用户在登录时通过SLQ Developer或Toad重置密码。

最后确保根据需要设置用户个人资料:

select * FROM dba_profiles

e.g。

 select * FROM dbA_profiles where profile = ‘DEFAULT’;
PROFILE RESOURCE_NAME RESOURCE LIMIT
—————————— ——————————– ——– —————————————-
..
DEFAULT PASSWORD_LIFE_TIME PASSWORD UNLIMITED

最后更改用户个人资料:

alter user SCOTT profile APPLICATIONS;

不要犹豫,要求我提供更多的澄清。

泰德

答案 1 :(得分:0)

您的要求不明确有助于探索更好的解决方案

  

块引用

我正在考虑尝试编写一个python脚本来连接数据库,然后更新密码

  

块引用

这是有效的,如果您知道现有密码(或具有DBA访问权限),那么您仍然可以循环执行,只要您将所有密码更新为相同的密码,或者有办法生成密码使用预定义的模式: 更改密码的命令:

alter user <username> identified by <password>

一旦连接到用户或sys

,就可以在循环中使用python或任何脚本语言