来自 sqldeveloper 的 ORA-01017,但来自 sqlplus 的 ORA-01017

来自 sqldeveloper 的 ORA-01017,但来自 sqlplus 的 ORA-01017

我已通过 sqldeveloper 作为 sys 登录 Oracle 19c 并创建了一个新用户

-- USER SQL
CREATE USER data_owner IDENTIFIED BY "password!"  
DEFAULT TABLESPACE "USERS"
TEMPORARY TABLESPACE "TEMP";

-- ROLES
GRANT CONNECT TO data_owner ;
GRANT RESOURCE TO data_owner ;
GRANT CREATE SESSION TO data_owner;

然后我通过 ssh 连接到 SUSE Linux Enterprise Server 12 服务器并su - oracle从 sqlplus 检查用户,我可以使用上述密码以 data_owner 身份正常连接。

当我使用相同的凭据时,为什么 sqldeveloper 返回以下错误?

ORA-01017: invalid username/password; logon denied
01017. 00000 -  "invalid username/password; logon denied"
*Cause:    
*Action:
Codice fornitore 1017

作为双重检查,如果我通过 sqldeveloper 再次以 sys 身份连接,我可以登录并执行 sql

SELECT 
    username, 
    default_tablespace, 
    profile, 
    authentication_type
FROM
    dba_users
WHERE 
    account_status = 'OPEN';

给我

SYS SYSTEM  DEFAULT PASSWORD
SYSTEM  SYSTEM  DEFAULT PASSWORD
DATA_OWNER  USERS   DEFAULT PASSWORD

答案1

连接类型旁边有一个角色的保管箱(抱歉是意大利语:“Ruolo”)。

它必须设置为预定义的(而不是默认的SYSDBA)。

截图如下

enter image description here

它确实有效:-)

请注意,如果您通过 SSH 连接到 SUSE Linux Enterprise Server 12 并作为普通用户(否则在连接时su - oracle您将成为普通用户,并且密码将被忽略),那么您将运行 Oracle 19cSYSas sysdbasqlplus

Enter user-name: data_owner as sysdba
Enter password:
ERROR:
ORA-01017: invalid username/password; logon denied

即使您输入了正确的密码。正如您从 sqldeveloper 中看到的那样,这是从其属性中默默添加as sysdba- 如果角色设置错误 - 但它不会在登录/密码弹出 gui 中显示角色。

相关内容