Anasayfa > Adım Adım Dökümantasyon, OID (Oracle Internet Directory), ORA-Errors > ORA-28043: invalid bind credentials for DB-OID connection

ORA-28043: invalid bind credentials for DB-OID connection

Merhaba Arkadaşlar,

Bu yazımda ORA-28043 hatasının çözümünde uygulanması gereken adımlardan bahsedeceğim.

Şirketimizde veritabanlarımız Oracle Internet Directory ile entegre çalışmaktadır. Örnek olarak dc=tholdap,dc=local domaini altında OID ile çalıştığını varsayalım. Bazı veritabanı OID kullanıcılarım veritabanına erişirken ORA-28043 hatası ile karşılaştıklarını ve login olamadıklarını ilettiler.
Bu durumda hatanın çözümü için yapmamız gereken ilk iş, aşağıdaki gibi bir trace başlatmaktır.

sqlplus / as sysdba

SQL> alter system set events ‘28033 trace name context forever, level 9’;

Yukarıdaki gibi SYS user ile trace başlattıktan sonra kullanıcımızdan veritabanına tekrar login olmasını ve hata almasını isteyelim. Kullanıcımız hata aldıktan sonra $ORACLE_BASE/diag/rdbms/$SID/$SID/trace dizini altında oluşan trace dosyamızı vi ile açalım.

vi /u01/app/oracle/diag/rdbms/testdb/TESTDB/trace/TESTDB_ora_9951.trc

ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1
System name: SunOS
Node name: dbtest
Release: 5.10
Version: Generic_150400-09
Machine: sun4v
Instance name: TESTDB
Redo thread mounted by this instance: 1
Oracle process number: 2610
Unix process pid: 9951, image: oracle@dbtest

*** ACTION NAME:() 2016-02-24 09:04:40.463
*** MODULE NAME:(Toad.exe) 2016-02-24 09:04:40.463
*** SERVICE NAME:(TESTDB) 2016-02-24 09:04:40.463
*** SESSION ID:(1212.44043) 2016-02-24 09:04:40.463
kzld_discover received ldaptype: OID
kzld found pwd in wallet
KZLD_ERR: Failed to bind to LDAP server. Err=49
KZLD_ERR: 49
KZLD is doing LDAP unbind
KZLD_ERR: found err from kzldini.
~
~

Trace dosyamızdan gördüğümüz üzere hata LDAP server binding işleminde ki bir problemden kaynaklanıyor.

kzld_discover received ldaptype: OID
kzld found pwd in wallet
KZLD_ERR: Failed to bind to LDAP server. Err=49
KZLD_ERR: 49
KZLD is doing LDAP unbind
KZLD_ERR: found err from kzldini.

O halde veritabanı wallet da bulunan kullanıcı adı ve şifremizle ldap sunucusuna bağlanmaya çalışalım.

Peki bu iş nasıl olacak? Wallet da bulunan kullanıcı adı ve şifremizi nasıl öğrenebiliriz? Aşağıdaki gibi mkstore ile bu bilgileri elde edebiliriz.

$ mkstore -wrl $ORACLE_BASE/admin/TESTDB/wallet -viewEntry ORACLE.SECURITY.DN
Oracle Secret Store Tool : Version 11.2.0.3.0 – Production
Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.

Enter wallet password: abcd678xx_

ORACLE.SECURITY.DN = cn=TESTDB,cn=OracleContext,dc=tholdap,dc=local
$ mkstore -wrl $ORACLE_BASE/admin/TESTDB/wallet -viewEntry ORACLE.SECURITY.PASSWORD
Oracle Secret Store Tool : Version 11.2.0.3.0 – Production
Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.

Enter wallet password: abcd678xx_

ORACLE.SECURITY.PASSWORD = +HKRbmQ7

mkstore, veritabanımızı OID ”ye register ederken belirlediğimiz wallet şifresini soracaktır. Şifremizi yukarıdaki gibi girdiğimizde kullanıcı adı ve şifremizi elde edebileceğiz.

Son durumda kullanıcı adı ve şifremiz aşağıdaki gibidir.

ORACLE.SECURITY.PASSWORD = +HKRbmQ7
ORACLE.SECURITY.DN = cn=TESTDB,cn=OracleContext,dc=tholdap,dc=local

Şimdi yukarıdaki bilgilerle LDAP sunucumuza bağlantı yapmaya çalışalım.

$ORACLE_HOME/network/admin dizininde bulunan ldap.ora dosyasından port numarasını öğrenelim.

$ cat /u01/app/oracle/product/11.2.0/db_1/network/admin/ldap.ora
# ldap.ora Network Configuration File: /u01/app/oracle/product/11.2.0/db_1/network/admin/ldap.ora
# Generated by Oracle configuration tools.

DIRECTORY_SERVERS= (idmoid.vodafone.local:1389:1636)

DEFAULT_ADMIN_CONTEXT = “dc=tholdap,dc=local”

DIRECTORY_SERVER_TYPE = OID

ldapbind komutu ile aşağıdaki gibi LDAP sunucusu bağlantı testi yapalım.

$ ldapbind -h idmoid.vodafone.local -p 1389 -D cn=TESTDB,cn=OracleContext,dc=tholdap,dc=local -w kSlIt+n2
ldap_bind: Invalid credentials

Gördüğümüz gibi problemin sebebi geçersiz login bilgilerinden kaynaklanıyor. Wallet da bulunan bilgilerle OID tarafı örtüşmüyor. Peki bu problemi nasıl çözebiliriz? Çözüm için iki yol var:
1- OID tarafında cn=TESTDB,cn=OracleContext,dc=tholdap,dc=local CN şifresi, ORACLE.SECURITY.PASSWORD ile elde ettiğimiz şifre ile güncellenir.

2- DBCA ile veritabanımızı aşağıdaki gibi yeniden register edebiliriz.

dbca -silent -configureDatabase -sourceDB TESTDB -unregisterWithDirService true -dirServiceUserName cn=dirManager -dirServicePassword OracleTHO11 walletPassword abcd678xx_

dbca -silent -configureDatabase -sourceDB TESTDB -registerWithDirService true -dirServiceUserName cn=dirManager -dirServicePassword OracleTHO11 walletPassword abcd678xx_

Yeniden register işlemi yaptıktan sonra ldapbind ile LDAP sunucumuza bağlantı testi yaptığımızda aşağıdaki gibi başarılı olduğunu görürüz.

$ ldapbind -h idmoid.vodafone.local -p 1389 -D cn=TESTDB,cn=OracleContext,dc=tholdap,dc=local -w +HKRbmQ7
bind successful

Artık kullanıcılarımız başarılı bir şekilde OID ile login olabileceklerdir.

Önemli bir noktayıda burada not etmek istiyorum. CN (Directory Service username) adında boşluklar varsa DBCA hata veriyor. Boşlukların yerine aşağıdaki gibi \20 yazarak bu problemi de çözebiliriz.

örneğin; Directory Service kullanıcı adımız “directory manager” olsun. Bu durumda DBCA da aşağıdaki gibi yazmamız gerekir.

dbca -silent -configureDatabase -sourceDB TESTDB -unregisterWithDirService true -dirServiceUserName cn=directory\20manager -dirServicePassword OracleTHO11 walletPassword abcd678xx_

Aksi durumda aşağıdaki hatayı alırız.

dbca -silent -configureDatabase -sourceDB TESTDB -unregisterWithDirService true -dirServiceUserName cn=directory manager -dirServicePassword OracleTHO11 walletPassword abcd678xx_
manager is an invalid command line argument.

Yukarıdaki gibi ldapbind ile bağlantı testimiz başarılı olmasına rağmen hala aynı hatayı alıyorsak, bu  Oracle IDM şifremizle alakalı bir durumdur. Bu durumda IDM şifremizi resetlememiz çözüm sağlayacaktır.

  1. Henüz yorum yapılmamış.
  1. No trackbacks yet.

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Connecting to %s

%d blogcu bunu beğendi: