Weblines Cloudمستندات

اتصالِ امن به دیتابیس

اطلاعاتِ اتصال کجاست، فرمتِ URL برای هر موتور، اتصال از اپ و بهترین روش‌ها برای pool و migration.

آخرین به‌روزرسانی:

اطلاعاتِ اتصال#

روی کارتِ دیتابیس در SERVICES:

فیلدتوضیح
hostمیزبانِ داخلی، در دسترس از اپ‌های همان سازمان
user / passwordرمز با SHOW نمایش داده می‌شود
databaseنامِ دیتابیس
urlآدرسِ کاملِ اتصال — همین را استفاده کنید

ساده‌ترین و امن‌ترین راه: اتصالِ اپ به دیتابیس — همین مقادیر را خودش به‌صورتِ DATABASE_URL و DB_* در اپ می‌گذارد.

فرمتِ URL#

URLِ روی کارت آماده‌ی استفاده است. اگر خودتان می‌سازید:

text
postgresql://USER:PASSWORD@HOST:5432/DATABASE
mysql://USER:PASSWORD@HOST:3306/DATABASE
mongodb://USER:PASSWORD@HOST:27017/?authSource=admin
redis://default:PASSWORD@HOST:6379/0

کاراکترهای خاصِ رمز را URL-encode کنید.

اتصال از بیرونِ پلتفرم#

host داخلی از اینترنت در دسترس نیست. برای اتصال از لپ‌تاپ یا ابزارِ BI، دسترسی از بیرون را فعال کنید — و بعد از کار خاموشش کنید.

عوض کردنِ رمز#

در بخشِ Connection، owner و admin دکمه‌ی ROTATE PASSWORD را می‌بینند. یک رمزِ تصادفیِ جدید ساخته می‌شود و:

  • در خودِ دیتابیس عوض می‌شود. رمزِ قبلی از همان لحظه کار نمی‌کند.
  • اپ‌هایی که به این دیتابیس لینک شده‌اند DB_PASSWORD و DATABASE_URL جدید را می‌گیرند و بنرِ REDEPLOY REQUIRED نشان می‌دهند. تا redeploy نکنید، اتصال‌های جدیدِ آن اپ با رمزِ قبلی رد می‌شوند.
  • هر جای دیگری که رمز را دستی گذاشته‌اید (لپ‌تاپ، ابزارِ BI، CI) باید دستی به‌روز شود.
  • MySQL، MariaDB، MongoDB و Redis چند ثانیه restart می‌شوند. PostgreSQL restart نمی‌شود.

اگر رمز لو رفته باشد، اول rotate کنید و بعد اپ‌های لینک‌شده را redeploy کنید.

بهترین روش‌ها#

  • Connection pool: اندازه‌ی pool را محدود کنید (ORM یا PgBouncer). هر connection از RAMِ پکِ دیتابیس سهم می‌گیرد.
  • Migration: اول روی محیطِ تست، بعد production؛ از شِلِ کانتینرِ اپ اجرا کنید.
  • Secret: رمز را در گیت commit نکنید؛ از متغیرهای تزریق‌شده بخوانید.

خطاهای رایج#

خطاعلتِ محتمل
Connection refusedدیتابیس STOPPED است، یا host/port اشتباه
password authentication failedرمز اشتباه یا کاراکترِ خاصِ encode نشده
timeout از بیرونhost داخلی را استفاده کرده‌اید؛ دسترسی از بیرون لازم است

جوابت را پیدا نکردی؟

تیکت از پنل یا تماس در ساعاتِ کاری: ۰۲۱-۸۸۷۱۷۴۵۱

ثبتِ تیکت