sbarbase
المحتويات

الوصول إلى قاعدة البيانات

تستطيع كل بيئة أن تعطيك سلسلة اتصال PostgreSQL للترحيلات والأدوات: psql وpg_dump وPrisma وDrizzle وأمثالها. تكون مطفأة حتى يشغّلها مالك أو مدير.

التشغيل

  1. افتح صفحة البيئة في لوحة الإدارة.
  2. تحت Database اضغط Turn on database access.
  3. انسخ سلسلة الاتصال التي تظهر. لا تظهر كلمة المرور إلا مرة واحدة؛ وزر New password يستبدلها، فتتوقف القديمة عن العمل.

تبدو السلسلة هكذا:

postgresql://e_…_developer:<password>@127.0.0.1:6543/e_…

الاتصال من حاسوبك

العنوان على الخادم نفسه. افتح نفق SSH، ثم استخدم السلسلة كما هي:

ssh -N -L 6543:127.0.0.1:6543 you@your-server
psql "postgresql://e_…_developer:<password>@127.0.0.1:6543/e_…?sslmode=disable"

أمثلة:

psql "postgresql://…@127.0.0.1:6543/e_…?sslmode=disable" -v ON_ERROR_STOP=1 -1 -f supabase/migrations/20261017000000_init.sql   # one migration file
pg_dump "postgresql://…@127.0.0.1:6543/e_…?sslmode=disable" --schema=public > public.sql
DATABASE_URL="postgresql://…@127.0.0.1:6543/e_…?sslmode=disable" npx prisma migrate deploy
supabase db push --db-url "postgresql://…@127.0.0.1:6543/e_…?sslmode=disable"   # every file in supabase/migrations
supabase gen types typescript --db-url "postgresql://…@127.0.0.1:6543/e_…?sslmode=disable" > database.types.ts

ما يستطيعه حساب المطوّر

يعمل مثل المستخدم postgres في مشروع Supabase، داخل قاعدة بيانات هذه البيئة وحدها:

تُمنح هذه الصلاحيات عند تشغيل الوصول؛ وللبيئة التي كان الوصول فيها مفعّلًا من قبل، أوقفه ثم شغّله مرة واحدة.

تُشفَّر أسرار Vault بمفتاح جذري واحد يخص الخادم لا البيئة: كل البيئات على الخادم تستخدم المفتاح نفسه. وتبقى منفصلة لأن كل بيئة لا تصل إلا إلى قاعدة بياناتها. انتبه لذلك في النسخ الاحتياطية: نسخة من vault.secrets لبيئة ما يمكن قراءتها في أي بيئة على الخادم نفسه، وعلى خادم آخر فقط بمفتاح هذا الخادم.

ليس مستخدمًا خارقًا، ولا يستطيع إنشاء أدوار أو قواعد بيانات، ولا الوصول إلى قاعدة بيانات بيئة أخرى. وحده الأقصى 10 اتصالات.

كيف يبقى آمنًا

يشغّل CI الوصول لبيئة على جهاز نظيف مع كل تغيير، وينفّذ ترحيلًا بأسلوب Supabase عبر المنفذ، ويتحقق من حالات الرفض وتجديد كلمة المرور والإطفاء (الدليل). وفحص آخر يدخل بحساب بيئة واحدة ويجرّب كل اسم مخطط محجوز، وتغيير الأسماء، والإضافات المرفوضة، ومنشور Realtime، والحماية نفسها، وVault، وقاعدة بيانات البيئة الأخرى (الدليل).

الحدود

عدّل على GitHub