2020年11月30日 星期一

6.3 Net Naming Method

連線至 Oracle 資料庫最簡單的方式就是使用 sqlplus 進行連線,使用 sqlplus 連線時會輸入 <帳號>/<密碼>@<資料庫名稱> , Oracle Net Naming Method 就是用來定義 “@” 後面的資料庫名稱是什麼。 Net Naming Method 總共有四種方式可以用來定義,分別是 Easy Connect Naming 、 Local Naming 、 Directory Naming 以及 External Naming。


  • Easy Connect Naming:

表示在連線的時候直接將資料庫的資訊輸入在連線字串裡面,也就是連線的時候直接指定資料庫的 ip 、 Port 與 Service Name:

$ sqlplus <帳號>/<密碼>@hostname:Port/DB_Service_Name

 

這邊要注意的是,在連線字串中必須一定要輸入密碼,這種連線方式不會提示要輸入密碼,而是會直接報錯:


  • Local Naming:

表示使用 tnsnames.ora 裡面的定義進行連線, “@” 後面使用的就是 tnsnames.ora 所自行定義的名稱,例如在 tnsnames.ora 裡面定義一個名為 “ORCL” 的名稱,而連線到的資料庫服務為 “ORA11”:


  • Directory Naming:

類似於 tnsnames.ora 的連線方式,差別在於將連線的名稱定義在 LDAP 上,而 LDAP 服務必須支援 Oracle Net 協定,例如OID (Oracle Internet Directory) 或是 Windows AD…等。在 LDAP 定義好名稱後必須於 Client 端的 sqlnet.ora 定義 DIRECTORY_PATH 指到 LDAP,這樣連線的時候就會去 LDAP 驗證連線字串:


  • External Naming:

類似於 Directory Naming 方式,差別在於將連線名稱定義在第三方的 Naming Service 服務,例如使用 NIS (Network Information Services)。此種方式同樣在定義完後必須設定 DIRECTORY_PATH 為 NIS 就可以使用:


雖然有四種方式可以連線,不過最常使用的還是 Easy Connect Naming 與 Local Naming,其中又以 tnsnames.ora (Local Naming) 的方式連線居多,差別在於 tnsnames.ora 裡面可以設定其他的參數選項,例如 Connect Failover 或是 Load Balance …等設定,而這些功能是 Easy Connect Naming 辦不到的。 Directory Naming 與 External Naming 使用上就沒有那麼普遍,除非有特殊需求,否則很少會使用這種方式來連線,例如將資料庫裡面的使用者帳號與 LDAP 來做整合以便統一管理,這類的情況才有可能使用 Directory Naming。



沒有留言:

張貼留言