Oracle

批量修改使用者資料

  • February 24, 2017

我目前有一個數據庫列表,其中使用者的個人資料已過時。預設情況下列出了很多,我們希望它們是 USR_PROFILE 或 DBA_PROFILE。

我有一個我們想要在 dba_profile 下的所有使用者名的列表。執行 alter user 語句以將所有使用者名批量更改為 USR_PROFILE 的最佳方法是什麼,而不是 dba 使用者列表(可能會或可能不會在數據庫中註冊)。

所以要單獨做,那就是

alter user U273622 profile USR_PROFILE;

但是,由於該數據庫有超過 350 個使用者,這將永遠持續下去。這是一個合理的猜測,忽略列出的 dba 使用者嗎?

alter user where username='U******' except where username='U238234,U3493234,U738467' profile USR_PROFILE;

有點害怕測試它,因為我不想破壞所有的使用者名。任何幫助都會很棒!

您當然可以創建一個 PL/SQL 腳本,但我認為讓一個簡單的查詢來建構 ALTER 語句是一個更好的選擇:

SELECT 'ALTER USER ' || username || ' PROFILE USR_PROFILE;'
FROM dba_users WHERE username NOT IN (...);

當然,您必須確定必須在 WHERE 子句中包含哪些使用者。

引用自:https://dba.stackexchange.com/questions/165436