Mauro Papandrea, March 09, 2026 - 9:50 am UTC
Sorry If I wan not clear enough.
In your example you have password_versions = '10G 11G', the '11g' part is what makes it works.
If you have just '10G' you get a bunch of zeroes instead of the hashed value:
username, password_versions
ALFA 10G
BETA 10G 11G
DBMS_METADATA.GET_DDL('USER','BETA')
--------------------------------------------------------------------------------
CREATE USER "BETA" IDENTIFIED BY VALUES 'S:939085939AE421D88ABAD8353DFA
87B5ADBAA228A6A2CEE08E04E4D9CB09;CB075B6D3EA3D797'but:
DBMS_METADATA.GET_DDL('USER','ALFA')
--------------------------------------------------------------------------------
CREATE USER "ALFA" IDENTIFIED BY VALUES 'S:0000000000000000000000000000000000
00000000000000000000000000'Best regards
Mauro
March 10, 2026 - 3:54 am UTC
I think for those old versions you should be able to spot the password in SYS.USER$ in one of the "spare" columns
Mauro Papandrea, March 10, 2026 - 7:31 am UTC
Yes, of course, but that requires the use of SYS user.
However, datapump is able to retrieve the password even when using SYSTEM user, so I am wondering how it can manage, I think there must be a way but I cannot figure it out
Regards