قاعدة بيانات أوراكل / دليل حلول تحريري
تشخيص سياق الخدمة وإخفاقات الوصول للكائنات
افصل توجيه المستمع ووجهة القاعدة والأسماء وتفويض الشيفرة قبل اقتراح تغيير.
قاعدة معرفة للقراءة فقط · بلا تعليقات عامة
تعرّف على الأعراض
يبلغ التطبيق ORA-12514 قبل الاتصال أو ORA-00942 بعده. يستطيع المطور الاستعلام تفاعلياً ولا يستطيع حساب التشغيل أو إجراء مخزن. احتفظ بالمرحلة والخطأ الدقيقين؛ لا تعني هذه الأعراض كلها كلمة مرور خاطئة.
افهم الأسباب المحتملة
- قد تغيب الخدمة عن تسجيل المستمع أو يصل الاتصال إلى PDB خاطئة أو يحل الاسم لمالك آخر. وقد يختلف الوصول بين جلسة تفاعلية ذات أدوار وشيفرة مخزنة لها حقوق ومتطلبات منح مباشر محددة.
صنّف الطبقة الفاشلة
اجمع واصف اتصال محجوباً وموقع العميل والخدمة وإصدار الخادم ودور الحساب من أدلة النشر المعتمدة. SID والخدمة معرّفان مختلفان وقد يحجب تبديلهما التجريبي الهدف. إذا لم ينشأ اتصال فلا تشخّصه استعلامات القاموس. اطلب من مالك الوجهة مقارنة الخدمة الموثقة بأدلة التسجيل الموجودة، ولا تعِد تشغيل المستمع أو تضعف المصادقة للاستكشاف.
قارن بصمة جلسة مصرح بها
قارن الهوية والحاوية والمخطط في جلسة مصرح بها بالإعداد المقصود. يؤثر CURRENT_SCHEMA في الأسماء ولا يمنح سلطة. نجاح جلسة إدارية لا يعوض دليل حساب التطبيق. الاستعلام توضيحي ولم يُنشأ اتصال أثناء التأليف. احفظ أسماء البنية الفعلية خاصة عند التصعيد.
SELECT SYS_CONTEXT('USERENV','SESSION_USER') AS session_user,
SYS_CONTEXT('USERENV','CURRENT_SCHEMA') AS current_schema,
SYS_CONTEXT('USERENV','CON_NAME') AS container_name
FROM dual;
قارن القيم الفعلية بخريطة الخدمة إلى PDB والحساب المعتمدة.
افحص الكائن ضمن النطاق المرئي
ابحث في ALL_TABLES عن الاسم الكبير والمالك المتوقعين مع تذكّر أن الأسماء المقتبسة تحفظ الحالة. قد يعني صفر صفوف عدم الوصول لا غياب الكائن. افحص المرادفات بالنطاق المعتمد إذا استُخدمت ثم حدّد المالك الأصلي. قد يزيل إنشاء جدول بديل في مخطط التشغيل الخطأ مع توجيه الكتابة لبيانات خاطئة، فلا يعد إصلاحاً صحيحاً.
SELECT owner, table_name FROM all_tables
WHERE table_name = 'SHIPMENTS'
ORDER BY owner;
يعيد المطابقات المرئية فقط ولا يثبت أن الغائب غير موجود في كل الحاويات.
حلّل سلطة الشيفرة المخزنة عمداً
إذا نجح SQL المباشر وفشلت الحزمة فافحص AUTHID والاعتماديات المؤهلة وتشخيص المالك. قد تحتاج ترجمة وتنفيذ حقوق المعرّف منحاً مباشراً مناسباً بدلاً من الدور التفاعلي. ولحقوق المستدعي قواعد تنفيذ خاصة. اجعل المالك المخوّل يقترح منحة كائن أو واجهة ضيقة وفق التصميم؛ لا تمنح DBA أو ANY لإخفاء العرض.
تحقق من نجاح الإصلاح
تحقق من وصول حساب التشغيل للخدمة والحاوية المقصودتين وحل المالك الموثق وتنفيذ العملية الاصطناعية المسموحة، ومن بقاء الكتابة المباشرة مرفوضة إذا اشترطت الواجهة. سجّل المسارين الفاشل والناجح منفصلين؛ لم ينفذ الدليل تحققاً على المحرك.
امنع تكرار المشكلة
- راجع خرائط الخدمة وPDB والاعتماديات المؤهلة ومنح التشغيل الدنيا مع كل إصدار. افصل إصدار العميل عن حقائق الخادم وضمّن حساب التشغيل الفعلي في اختبارات التفويض.