سؤال

أنا SQL Server المطور/DBA استشاري من هو مساعدة العميل الذي خسر مؤخرا Oracle DBA.لقد فعلت التنمية على أوراكل ، ولكن ليس كثيرا DBA العمل ، وليس في homed تعدد البيئات مثل هذا.

المشكلة: أنا يمكن الاتصال باستخدام "SYS As SYSDBA" من SQL Plus, ولكن لا من SQL المطور على نفس النظام.ومع ذلك, أنا يمكن الاتصال باستخدام "نظام" إما مع SQL Plus أو SQL المطور.

التفاصيل:

على هذا الملقم في بلدي ويندوز حساب المشرف (دخلت أيضا كما مسؤول ملقم Oracle مشرف مساعد) ، DOS يعمل:

D:\Oracle\app\product\11.2.0\dbhome_1\BIN>sqlplus /@MyDb as sysdba

و حدد * من V$سبيل المثال يظهر أنه في MyDb وأن كل أداة ديسيبل هي 11.2.0.3

فهل هذا واحد:

D:\Oracle\app\product\11.2.0\dbhome_1\BIN>sqlplus sys/<pwd>@MyDb as sysdba

(أيضا:دخول الخطأ كلمة السر يعمل كذلك(!))

باستخدام SQL-بالإضافة إلى تشغيل خيار القائمة من نفسه (قطع حساب الوطن) هذه أيضا العمل:

Enter user-name: /@MyDb as sysdba
Enter user-name: sys/<pwd>@MyDb as sysdba

Select * from V$سبيل المثال يظهر أنه في MyDb وأن كل أداة ديسيبل هي 11.2.0.3

محاولة الوصول إلى MyDb من نفسه مع SQL المطور نجح على "النظام" اسم المستخدم ، ولكنه يفشل عن "sys" "as sysdba" مع "أورا-01031:امتيازات كافية".ومع ذلك ، لا العمل عند الاتصال إلى قاعدة أخرى من قواعد البيانات على خوادم أخرى.

لقد بحثت عن هذا ، وأكثر من نشر هذا يبدو أن تهدف إلى الحالات التي لا يوجد فيها جميع توصيلات يمكن أن تكون مصنوعة الذي ليس هو الحال هنا.فقط أن تتوجه بعض هذه:

  • المشكلة ليست أن الشبكة ليست الإعداد ، لأن SQL المطور يعمل على "نظام" سواء محليا أو عن بعد.
  • المشكلة ليست أن DB/سبيل المثال ليس بدأت ، لأن مرة أخرى ، يعمل على "النظام"
  • انها ليست أنني الاتصال الخاطئ قاعدة بيانات راجعت على "النظام"
  • AFAIK, انها ليست أن أنا باستخدام بناء الجملة الخطأ في SQL المطور للاتصال DB "As SYSDBA" لأنه يعمل عند الاتصال إلى ملقمات أخرى على DBs.

حدسي يشعر هو إما

  1. هناك بعض الإعدادات التي تقول "لا تسمح SYSDBA من خلال شبكة اتصال"،أو
  2. هناك بعض التكوين/إذن المشكلة في أوراكل شبكة المستمع أن يمنع من التحقق من بلدي ويندوز حساب المشرف, وبالإضافة إلى ذلك, sys كلمة المرور غير ما قيل ، وأخيرا أوراكل هو إعطاء منفرجة رسالة الخطأ تلك.

أي مساعدة أو توجيه حول هذا سيكون موضع تقدير كبير.


حسنا, لذلك باستخدام تعليمات من @BalasPapp, كنت قادرا على العثور على أكثر من الإجراءات التالية:

  • قاعدة البيانات هذه تخدمها الثاني أوراكل 11g المنزل دعا OraDb11g_home3 pathed إلى D:\Oracle\app\product\11.2.0\dbhome_1D:\Oracle\app\product\11.2.0\dbhome_1.
  • خدمات Windows أظهرت لا معلمات بدء التشغيل لذلك (ما عدا DB الاسم طبعا).
  • الأمر show parameter remote_login_passwordfile يظهر قيمة "حصري".

محتويات المستمع.أورا:

# listener.ora Network Configuration File: D:\Oracle\app\product\11.2.0\dbhome_1\network\admin\listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = D:\Oracle\app\product\11.2.0\dbhome_1)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ONLY:D:\Oracle\app\product\11.2.0\dbhome_1\bin\oraclr11.dll")
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = <SERVERNAME>.<networkname>.local)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

ADR_BASE_LISTENER = D:\Oracle\app

محتويات sqlnet.أورا:

# This file is actually generated by netca. But if customers choose to 
# install "Software Only", this file wont exist and without the native 
# authentication, they will not be able to connect to the database on NT.

SQLNET.AUTHENTICATION_SERVICES = (NTS)

إخراج lsnrctl status:

D:\Oracle\app\product\11.2.0\dbhome_1\BIN>lsnrctl status

LSNRCTL for 64-bit Windows: Version 11.2.0.3.0 - Production on 23-DEC-2015 12:03:55

Copyright (c) 1991, 2011, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=<SERVERNAME>.<networkname>.local)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for 64-bit Windows: Version 11.2.0.3.0 - Production
Start Date                02-DEC-2015 16:25:41
Uptime                    20 days 19 hr. 38 min. 17 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   D:\Oracle\app\product\11.2.0\dbhome_1\network\admin\listener.ora
Listener Log File         D:\Oracle\app\diag\tnslsnr\<SERVERNAME>\listener\alert\log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=<SERVERNAME>.<networkname>.local)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))
Services Summary...
Service "CLRExtProc" has 1 instance(s).
  Instance "CLRExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "<DBNAME>" has 1 instance(s).
  Instance "<DBNAME>", status READY, has 1 handler(s) for this service...
The command completed successfully

D:\Oracle\app\product\11.2.0\dbhome_1\BIN>

المعلمات عند الاتصال من SQL Developer:

Username:  system (or sys)
Password:  <...>
Connection 
  Type:    Basic
  Role:    Default (or SYSDBA)
Hostname:  localhost
Port:      1521
SID (or Service name, both work/fail the same):
           <dbname>

(Neither OS Authentication nor Kerberos is set)

يعمل نظام "الافتراضي" ، فشل عن "sys, SYSDBA" مع "امتيازات كافية".لقد حاولت العديد من مجموعات من نظام التشغيل المصادقة Keberos إعدادات كذلك ، ولكن دون جدوى.

أخيرا, هذه هي اثنين فقط .ora الملفات في /database الدليل:

SNCF<DBNAME>.ORA           (18MB)
SPFILE<DBNAME>.ORA         (4kb)

كلاهما يبدو أن الملفات الثنائية في "المفكرة".

أيضا: select * from v$pwfile_users إرجاع أية صفوف.

هل كانت مفيدة؟

المحلول

الاتصال باستخدام 'as sysdba' من عميل على sql*net تحتاج إلى أن يكون

  1. remote_login_passwordfile المعلمة أن يكون 'الحصري'
  2. ملف كلمة المرور (orapw${ORACLE_SID}) الحالي على سبيل المثال حيث كنت في محاولة للاتصال
  3. يكون المستخدم منح sysdba في قاعدة البيانات (sys هذا التقصير يستخدم باسود ملف كلمة السر.

الموقع الافتراضي كلمة السر الملف $ORACLE_HOME/dbs ولكن منذ أوراكل v12 فإنه يمكن أيضا أن يتم تخزين في ASM.في هذه الحالة يمكنك العثور عليه باستخدام srvctl

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى dba.stackexchange
scroll top