אבטחת חיבורי PostgreSQL, MySQL, MongoDB ב-Retool

הקמת Retool הופכת פעמים רבות לכאוס: חיבורי מסד נתונים לא מאובטחים, הרשאות גישה מופרזות ושאילתות שמאטות את הכלים שלכם. אנחנו מטפלים בחיבור PostgreSQL, MySQL ו-MongoDB ב-Retool במפתח מלא—מיצירת משתמשים מבודדים ועד להגדרת הצפנה ואופטימיזציה. הצוות שלנו מבטיח פתרון אמין ומאובטח עם תמיכה מתמשכת, כך שאתם עובדים ללא הפרעות או דליפות.

פיתוח ותחזוקה של כל סוגי האתרים:

אתרי מידע או יישומי אינטרנט
אתרי תדמית, דפי נחיתה, אתרי חברה, קטלוגים מקוונים, חידונים, אתרי קידום, בלוגים, מקורות חדשות, פורטלי מידע, פורומים, אגרגטורים
אתרי מסחר אלקטרוני או יישומי אינטרנט
חנויות מקוונות, פורטלי B2B, שווקים, בורסות מקוונות, אתרי קאשבק, בורסות, פלטפורמות דרופשיפינג, מנתחי מוצרים
יישומי אינטרנט לניהול תהליכים עסקיים
מערכות CRM, מערכות ERP, פורטלים ארגוניים, מערכות ניהול ייצור, מנתחי מידע
אתרי שירות אלקטרוני או יישומי אינטרנט
פלטפורמות מודעות, בתי ספר מקוונים, בתי קולנוע מקוונים, בוני אתרים, פורטלים לשירותים אלקטרוניים, פלטפורמות אירוח וידאו, פורטלים נושאיים

אלה רק חלק מהסוגים הטכניים של אתרים שאנו עובדים איתם, ולכל אחד מהם יכולים להיות מאפיינים ופונקציונליות ספציפיים משלו, וכן ניתן להתאים אותם לצרכים ולמטרות הספציפיים של הלקוח.

השירותים שאנו מציעים
מציג 1 מתוך 1כל 2062 השירותים
אבטחת חיבורי PostgreSQL, MySQL, MongoDB ב-Retool
פשוט
מ- 1 יום עד 3 ימים

הכישורים שלנו:

שאלות נפוצות

העבודות האחרונות

  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1359
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1330
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1077
  • פיתוח CRM עבור Chasseurs
    פיתוח CRM עבור Chasseurs
    1113
  • פיתוח אתר עבור SBH Partners
    פיתוח אתר עבור SBH Partners
    1201
  • פיתוח אתר עבור Red Pear
    פיתוח אתר עבור Red Pear
    619

בעת הגדרת Retool לכלים פנימיים, עולות בעיות נפוצות: הרשאות שגויות, חיבורים לא מאובטחים, ושאילתות N+1 שפוגעות בביצועים. תרחיש טיפוסי: מפתח מעניק למשתמש גישת superuser למסד הנתונים ואז תוהה מדוע מתרחשות דליפות מידע. או מתחבר ל-MongoDB ללא SSL, ומשאיר את התעבורה בטקסט פשוט. לאחרונה, לקוח איבד יומיים בפריסת פאנל ניהול עקב הרשאות שגויות — תיקנו את זה ב-3 שעות. אנו מגדירים חיבורי מסדי נתונים (PostgreSQL, MySQL, MongoDB) מאפס: מיצירת משתמש ייעודי ועד להגדרת מנהרת SSH. להלן תצורות טיפוסיות, שיטות עבודה מומלצות, ומלכודות אמיתיות שאנו נמנעים מהן.

בעיות שאנו פותרים

שאילתות N+1 הן גורם מרכזי להאטות. Retool ללא מטמון יכול להריץ עשרות שאילתות כדי להציג ווידג'ט בודד. לדוגמה, רשימת לקוחות עם ההזמנות שלהם: ללא JOIN, מקבלים שאילתה אחת לכל לקוח + N עבור הזמנות. זה מגדיל את זמן הטעינה ב-500%. הפתרון: שימוש בשאילתות עם פרמטרים ו-LEFT JOIN בתוך קריאה אחת.

חיבורים לא מאובטחים — מסד נתונים עם IP ציבורי, סיסמת superuser בטקסט פשוט, וללא SSL. בפרויקט אחד, גילינו שניתן להתחבר ל-MongoDB ללא סיסמה מכל מקום בעולם. נאלצנו לשנות את ההגדרות בדחיפות.

הרשאות — לעיתים קרובות התפקידים רחבים מדי. זה מוביל למחיקת נתונים מקרית או להזרקות SQL. אנו תמיד יוצרים משתמש עם הרשאות מינימליות.

הימנעות משאילתות N+1

N+1 מתרחש כאשר עבור כל אובייקט אב, מבוצעת שאילתת ילד נפרדת. ב-Retool, זה בולט במיוחד בטבלאות עם חיפושים. הגישה האופטימלית היא שאילתת SQL אחת עם JOIN, אגרגציה, או ביטויי IN (). לדוגמה, במקום:

SELECT * FROM customers; -- 1 запрос -- для каждого customer выполняется: SELECT * FROM orders WHERE customer_id = $1; 

השתמשו ב:

SELECT c.*, o.order_count 
FROM customers c 
LEFT JOIN (
    SELECT customer_id, COUNT(*) as order_count 
    FROM orders 
    GROUP BY customer_id
) o ON c.id = o.customer_id;

השהייה טיפוסית מ-N+1 היא 2-3 שניות לעמוד. לאחר אופטימיזציה, השאילתה רצה ב-50 אלפיות השנייה.

חיבור PostgreSQL, MySQL ו-MongoDB

Retool תומך במסדי נתונים פופולריים. נסקור את החיבור לכל אחד. חשוב: כל החיבורים חייבים להיות מוצפנים, ולמשתמשים חייבות להיות הרשאות מוגבלות.

PostgreSQL

בצעו את השלבים הבאים כדי להתחבר ל-PostgreSQL:

  1. צרו משאב ב-Retool: Resources → Create New → PostgreSQL.
  2. ספקו את שם המארח של מסד הנתונים (לדוגמה, your-database-server.com), פורט 5432, שם מסד נתונים, שם משתמש לקריאה בלבד, וסיסמה.
  3. הגדירו מצב SSL ל-require.
  4. צרו משתמש ייעודי לקריאה בלבד באמצעות דוגמת ה-SQL להלן.

דוגמת SQL ליצירת משתמש לקריאה בלבד:

יצירת משתמש לקריאה בלבד
Host: db.production.example.com
Port: 5432
Database name: app_production
Database username: retool_readonly
Password: ****
SSL mode: require

MySQL

עבור MySQL, השתמשו גם במשתמש נפרד לקריאה בלבד. הפעילו את SELECT * FROM customers; -- 1 запрос -- для каждого customer выполняется: SELECT * FROM orders WHERE customer_id = $1; והגדירו charset ל-SELECT c.*, o.order_count FROM customers c LEFT JOIN ( SELECT customer_id, COUNT(*) as order_count FROM orders GROUP BY customer_id ) o ON c.id = o.customer_id; . הפורט ברירת המחדל הוא 3306.

MongoDB

מחרוזת חיבור: Host: db.production.example.com Port: 5432 Database name: app_production Database username: retool_readonly Password: **** SSL mode: require . בסביבת ייצור, השתמשו ב-replica set עם CREATE USER retool_readonly WITH PASSWORD 'secure_password'; GRANT CONNECT ON DATABASE app_production TO retool_readonly; GRANT USAGE ON SCHEMA public TO retool_readonly; GRANT SELECT ON ALL TABLES IN SCHEMA public TO retool_readonly; ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO retool_readonly; . הפורט ברירת המחדל הוא 27017.

פרמטר PostgreSQL MySQL MongoDB
פורט ברירת מחדל 5432 3306 27017
מצב SSL require נדרש ssl=true
משתמש נפרד לקריאה בלבד נפרד לקריאה בלבד תפקיד נפרד

הגדרת מנהרת SSH

אם למסד הנתונים אין IP ציבורי, השתמשו במנהרת SSH. Retool תומך בהגדרה תוך דקות ספורות.

  1. בשרת ה-bastion, צרו משתמש SSL: Required עם פקודות מוגבלות.
  2. בעת יצירת משאב ב-Retool, הפעילו SSH tunnel וציינו:
    • SSH host: your-bastion-host
    • SSH port: 22
    • SSH username: retool-tunnel
    • SSH private key: מפתח ה-SSH הפרטי שלכם
  3. בשרת ה-bastion, הגבילו פקודות:
CREATE USER retool_readonly WITH PASSWORD 'secure_password';
GRANT CONNECT ON DATABASE app_production TO retool_readonly;
GRANT USAGE ON SCHEMA public TO retool_readonly;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO retool_readonly;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO retool_readonly;

שאילתות עם פרמטרים לעומת הזרקות SQL

Retool מבצע escape אוטומטי למשתנים ב-utf8mb4. השתמשו תמיד בהם. דוגמה לעדכון בטוח:

Match User retool-tunnel ForceCommand /bin/false PermitTunnel yes AllowTcpForwarding yes 

לעולם אל תבצעו שרשור מחרוזות ידני — זו דרך ישירה להזרקות. לפי תיעוד Retool, שאילתות עם פרמטרים הן השיטה הבטוחה היחידה.

הרשאות גישה עבור Retool

עדיף ליצור משתמש נפרד לקריאה בלבד. אם נדרשות כתיבות, העניקו הרשאות רק לטבלאות ספציפיות. דוגמה עבור PostgreSQL:

UPDATE users 
SET status = {{ statusSelect.value }}, 
    updated_at = NOW(), 
    updated_by = {{ current_user.email }} 
WHERE id = {{ usersTable.selectedRow.data.id }} 
  AND status != {{ statusSelect.value }}
פעולה תפקיד טבלאות
קריאה בלבד retool_readonly כל הטבלאות בסכמה
קריאה וכתיבה retool_ops רק users, orders

הגדרה סוהר: מה כלול

אנו מספקים מחזור עבודה מלא:

  • ניתוח ארכיטקטורה ובחירת מחסנית אופטימלית
  • יצירת משתמשי מסד נתונים עם הרשאות מינימליות
  • הגדרת מנהרת SSH ו-SSL
  • הגדרת משאבים ב-Retool
  • כתיבת 5–10 השאילתות והווידג'טים הראשונים
  • תיעוד על חיבור ואבטחה
  • הדרכת צוות (שעה אחת)
שלב זמן
ניתוח ועיצוב 2–3 שעות
הגדרת תשתית 1–2 שעות
הגדרת Retool שעה אחת
בדיקות ותיעוד שעתיים

ציר זמן — מיום אחד. המחיר מחושב בנפרד לפי מורכבות. תמחור טיפוסי להגדרת Retool סוהר מתחיל ב-$800 וכולל את כל השלבים לעיל. עבור אופטימיזציה של Retool, אנו ממליצים על ביקורות ביצועים קבועות ו-connection pooling.

טעויות הגדרה נפוצות

  • מארח שגוי: השתמשו ב-IP פרטי אם Retool ומסד הנתונים נמצאים באותה רשת.
  • חומת אש שהוחמצה: בדקו שה-IP של Retool מורשה בקבוצת האבטחה.
  • פורט שגוי: ודאו עם ה-DBA.
  • SSL חסר: תמיד הפעילו מצב SSL require או ssl=true.

למה להפקיד בידינו את ההגדרה?

יש לנו ניסיון של 5+ שנים עם Retool ומסדי נתונים. אנו מבטיחים אבטחה וביצועים. הגדרנו למעלה מ-50 פרויקטים. Retool מהיר פי 5 מפאנלי ניהול מותאמים אישית — אתם חוסכים עד 40% מזמן הפיתוח. קבלו ייעוץ — נעריך את הפרויקט שלכם.