إصلاح · سوبابيس وقواعد البيانات
خطأ 42501: لا توجد صلاحية على الجدول (permission denied)
تعطّل عملكلم يُفحص مقابل شاشات الجهة الحالية
ما قد تراه
- الخطأ permission denied for table وليس أمان مستوى الصف
- جدول أنشأته بـ SQL لا يمكن قراءته من تطبيقي
السبب الأرجح
دور قاعدة البيانات الذي يستخدمه تطبيقك (anon أو authenticated) ليس له GRANT على ذلك الجدول أو الدالة أو المخطط؛ وهذا منفصل عن أمان مستوى الصف.
افحص أولاً (نحو دقيقتين)
- اقرأ الكلمة بعد "for": هل هي table أو schema أو function أو sequence؟
- هل أنشأت الجدول بـ SQL (وليس بأزرار اللوحة)؟ قد تكون الصلاحيات ناقصة.
أمر الإصلاح
ما تكتبه هنا لا يغادر متصفحك. البحث يعمل داخل هذه الصفحة ولا يُرسل شيء إلى خادم ولا إلى ذكاء اصطناعي.
يبقى في هذا المتصفح وعلى هذا الجهاز فقط. تُحذف المفاتيح وكلمات المرور قبل أي حفظ.
لغة الأمر
الصقه في Claude أو ChatGPT أو Gemini أو Cursor ثم اتبع ما يقوله.
بعد أن جرّبته، هل نجح؟
الخطوات
- اعرض صلاحيات الجدول للدورين anon وauthenticated (استعلم عن information_schema.role_table_grants).
- قرّر معي الحد الأدنى لكل دور (مثلاً authenticated: select وinsert؛ وanon: لا شيء).
- اكتب أوامر GRANT لهذه فقط، كملف هجرة، مع سياسات أمان مستوى الصف لتبقى السجلات محمية.
لا تفعل هذا
- لا تشغّل GRANT ALL على جداول خاصة للدور anon "للتجربة".
- لا تمنح كل شيء للدور anon.