题目二:迁移到12c,19c之后,在用户密码没有修改的情况下,用户密码登录出现错误ORA-01017
错误:ORA-01017: invalid username/password; logon denied
原因:用户的密码哈希加密版本与数据库的密码认证算法不匹配导致,密码的哈希加密版本表示用户密码使用了哪些版本的加密算法,有4个密码加密版本10G、11G、12C和HTTP:
10G: If an old case-insensitive ORCL hash exists,10G的不区分密码大小的算法
11G: If a SHA-1 hash exists
12C: If a de-optimized PBKDF2-based hash exists
HTTP: If an MD5 hash (for HTTP Digest authentication) exists
如果用户的密码加密算法与数据库密码认证算法不匹配,就会出现用户密码不精确的报错。 关于PASSWORD_VERSIONS加密算法的版本生成
Oracle12c、19c默认生成的密码加密版本为11G,12C,如果想生成10G的版本,必要先在sqlnet.ora内里配置数据库默认允许客户端毗连版本SQLNET.ALLOWED_LOGON_VERSION_SERVER为低版本,再通过创建用户或是重置密码生成。
查询用户密码加密信息。
CREATE USER TEST10G12C IDENTIFIED BY VALUES 'T:F27F1408CD6F04D3A569151B2E746C14177229A3052D6B819477A0DB370496355DFEB13DE546064A39A51220E35B8345D030235A00AAB4B6148BA2464E7099247FCD1FCDE8ADC8A37FED9751E1E7A252;9CFF9DBE2FEA9B56';
CREATE USER TEST11G12C IDENTIFIED BY VALUES 'T:716B0136FDC758F2F5DF45F26AC5C8745EF21FCF1854E4B9C21F420FFF1CE0A99EB5DB6593B579396E4F2C0E3F5C543DC49958F6F6EC5680AB6F018A4D689D25AC0932EA45F77246AB882C82F354219B;S:36931834C6D687D4571AF489E2E043722DD1DBC8BEEB39522B0510978681';
CREATE USER TEST12C IDENTIFIED BY VALUES 'T:937995B3C97D239C7E1DBD6216F2A47093CC7F8F593DC901D99DD6FB0EF76BD57E290F23DF57099B7664CB685B3C5114927032D13822CD1E9B4E43B9795A4C3235F24A09855CAA5DCFF447FD2E6AD9CB';