Oracle

使用遠端電腦上的 OS 身份驗證使用 SQLDeveloper 連接到 Oracle

  • May 25, 2015

我通過 SSH 從我的 MacBook 訪問我的數據庫伺服器。您可以使用作業系統身份驗證登錄到此數據庫。

MacBook:~ mangeles$ ssh oracle@10.10.1.64
oracle@10.10.1.64's password: 
Last login: Thu May 21 11:45:14 2015 from 172.31.12.51
[oracle@bd ~]$ . oraenv
ORACLE_SID = [MF] ? PROD
[oracle@bd ~]$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.4.0 - Production on Thu May 21 11:46:17 2015

Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.


Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> 

我可以使用 SQLDeveloper 連接到數據庫,但我必須提供使用者名和密碼。我可以以 SYS 身份(通過 SSH)連接到所有數據庫,但我沒有所有數據庫的 SYS 密碼,並且無法更改密碼。

我想知道如何在我的 SQLDev 中使用 OS 身份驗證來登錄,就像我在終端中一樣,而無需輸入密碼。

這是我得到的錯誤

這些是與此相關的預設值:

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
os_authent_prefix                    string      ops$
remote_os_authent                    boolean     FALSE

將 remote_os_authent 設置為 true:

alter system set remote_os_authent=true scope=spfile sid='*';
shutdown immediate
startup

使用您的作業系統使用者名創建一個數據庫使用者,並以上述值作為前綴:

create user ops$mangeles identified externally;
grant create session to ops$mangeles;

這樣,由於遠端作業系統身份驗證,您無需密碼即可登錄。問題是,任何人都可以在任何機器上創建一個命名的作業系統使用者mangeles,並且他們無需提供密碼就可以登錄。

SYSDBA 不適用於這種類型的身份驗證,如果您嘗試grant sysdba to ops$mangeles,您將獲得ORA-01997: GRANT failed: user 'OPS$MANGELES' is identified externally.

當您登錄終端時,Oracle 允許您登錄,因為oracle伺服器上的使用者是該機器上組10.10.1.64的成員。OSDBA

當您從筆記型電腦上的 SQL Developer 連接時,它是遠端連接,因此通常無法進行作業系統身份驗證。您可能可以使用 SSH 身份驗證,請參閱https://docs.oracle.com/cd/E39885_01/appdev.40/e38414/intro.htm#CHDEHFFB也許當您點擊“高級…”按鈕時它是可配置的?

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