我已通过 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
)。
截图如下
它确实有效:-)
请注意,如果您通过 SSH 连接到 SUSE Linux Enterprise Server 12 并作为普通用户(否则在连接时su - oracle
您将成为普通用户,并且密码将被忽略),那么您将运行 Oracle 19cSYS
as sysdba
sqlplus
Enter user-name: data_owner as sysdba
Enter password:
ERROR:
ORA-01017: invalid username/password; logon denied
即使您输入了正确的密码。正如您从 sqldeveloper 中看到的那样,这是从其属性中默默添加as sysdba
- 如果角色设置错误 - 但它不会在登录/密码弹出 gui 中显示角色。