Oracle Instant Client ile ad araması için LDAP kullanma


14

Kısmen, Oracle istemcisinin tam kurulumuyla çakışan sürümler veya bitness ile ilgili sorunların bir sonucu olarak, geliştirme ekibim (üyesi olduğum) Oracle Instant Client'ı kullanmaya ve çoğu zaman geliştirme makinelerimizdeki kurulumdan kaçınmaya devam ediyor yeni projeler. Bu, bu kurulumla üretime dağıttığımız noktaya kadar oldukça iyi çalıştı. Çoğunlukla bir .NET mağazası olduğumuzdan, Java istemcisi yerine yerel istemciyi (.NET sarmalayıcılarıyla) kullanıyoruz.

Artık bir istemci veritabanı hizmetini bir LDAP sunucusuna kaydettirmemizi ve isim aramak için LDAP sunucusunu kullanmamızı istiyor. Sağladıkları dosyaları sqlnet.orave ldap.ora(ve beraberindeki şifreleme yapılandırma dosyasını) doğru gibi görünüyorlar. Özellikle sqlnet.oradosya, net hizmet adlarını aramak için olası bir kaynak olarak LDAP'yi belirtir:

names.directory_path=(tnsnames,ldap)

SQL Developer (LDAP bilgilerini doğrudan girmeme izin verdi) kullanarak bunu yapabildiğim için birlikte çalıştığım makinenin hizmete erişmek için LDAP kullanabileceğinden eminim. Doğru olduklarını varsayarsak, Anında İstemcinin bu yapılandırmayı tanımasını ve ad araması için LDAP'yi nasıl kullanmasını sağlayabilirim?

Şimdiye kadar denediklerim

TNS_ADMINOrtam değişkenini sağlanan dosyaları içeren dizine ayarlamayı denedim ve bu Anlık İstemci'nin bir tnsnames.oradosyayı tanımasını sağlamak için iyi çalışıyor olsa da, LDAP'ye bakmaya başlamak için yeterli görünmüyor. Sonuçlar (yollar, kullanıcı adları ve şifreler değiştiğinde):

(Aşağıdaki komutlar Windows Komut İstemi olur, ancak benzer bir şeyin Linux'ta yapılabileceğini hayal ediyorum. sqlplusBurada görülen, aynı dizinde bulunan Anında İstemci ikilileriyle birlikte Anında sürümdür.)

C:\TEMP>SET TNS_ADMIN=C:\path\to\sqlnet\ldap\and\tnsnames\ora\files

C:\TEMP>echo %TNS_ADMIN%
C:\path\to\sqlnet\ldap\and\tnsnames\ora\files

C:\TEMP>sqlplus.exe USERNAME/PASSWORD@LOCALTNSNAME

SQL*Plus: Release 11.2.0.2.0 Production on Mon Jul 7 10:22:25 2014

Copyright (c) 1982, 2010, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, Automatic Storage Management, OLAP, Data Mining
and Real Application Testing options

SQL> exit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Produ
With the Partitioning, Automatic Storage Management, OLAP, Data Mining
and Real Application Testing options

C:\TEMP>sqlplus.exe USERNAME/PASSWORD@LDAPTNSNAME

SQL*Plus: Release 11.2.0.2.0 Production on Mon Jul 7 10:24:21 2014

Copyright (c) 1982, 2010, Oracle.  All rights reserved.

ERROR:
ORA-12154: TNS:could not resolve the connect identifier specified

Kenar notu

Bu soruya eklenebilecek TNS, LDAP veya Anında İstemci (veya yalnızca normal Oracle Client) için etiketler var mı? Ben bulamadım.


Doğru çalıştırılabilir mi? "nerede sqlplus"
Bjarte Brandt

@BjarteBrandt Evet, where( C:\TEMP\sqlplus.exe) çalıştırdığımda olmasını beklediğim bu . Daha spesifik olmak gerekirse, sqlplusmakineye "kurulmamıştır". Sadece mevcut dizinde, yanında istemci ikili dosyaları var. Tamamen farklı bir dizinde olduğu için kesinlikle ortam değişkenini tnsnames.orakullanarak dosyayı alıyor TNS_ADMIN.
jpmc26

@BjarteBrandt Doğru istemci ikili dosyalarını kullandığını doğrulamak için, devam ettim ve de koştum where oci.dll. Ayrıca beklenen sonuçları verir: C:\TEMP\oci.dll.
jpmc26

bir alan adı sorunu olabilir. FQ adıyla da denediniz mi? (dbname_or_whatever.domainname)
ik_zelf

2
@ ora-600 Üzgünüm, bu soruyu unuttum. İstemcimiz tarafından bize sağlanan yapılandırma dosyalarıyla ilgili sorunlar olduğu ortaya çıktı. (Muhtemelen Kerberos yapılandırma dosyası; elden hatırlayamıyorum.) Komik olan şu ki, bunu yapmaya çalışan dev bir ortamda çalışıyordum, hazırlamada çalışmasını sağlamak da aynı derecede sorunluydu ve hala değil bildiğim kadarıyla ürünlerde çalışmak. (Biz uygulamayı çalıştırmak için yerel bir TNS adı kullanarak sona erdi.) Kesinlikle proje için para israf; Üretimde çalışsa bile, yatırım getirisi maliyete göre küçük olacaktır.
jpmc26

Yanıtlar:


1

Yerleştirin sqlnet.orave ldap.orasizin dosyaları $ORACLE_ADMINdizini ve ortam değişkenlerini ayarlamak için emin olun. Benim TNS_ADMINdizini yaptım

(Linux) benim .bashrc

export TNS_ADMIN=/opt/oracle/instantclient_12_1/network/admin
export ORACLE_ADMIN=${TNS_ADMIN}

[ku14lts:/opt/oracle/instantclient_12_1/network/admin]
$ ls
ldap.ora  sqlnet.ora  tnsnames.ora

Ve bir DB'ye bağlanamadım tnsnames.ora

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.