Oracle
使用遠端電腦上的 OS 身份驗證使用 SQLDeveloper 連接到 Oracle
我通過 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也許當您點擊“高級…”按鈕時它是可配置的?