إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
تغطي هذه المقالة ميزات الاتصال المتقدمة في امتداد PostgreSQL للعبة تعليمة Visual Studio برمجية. استخدم هذه الخيارات عندما تحتاج إلى إعادة استخدام سلسلة سلسلة الاتصال موجودة، أو توفير ملفات الشهادات للتحقق من صحة TLS أكثر صرامة، أو الاتصال عبر مضيف باستيون باستخدام نفق SSH.
نصيحة
للمصادقة القياسية، واختيار وضع SSL، ومجموعات الخوادم، والاتصالات المحفوظة، انظر الاتصالات والهوية.
استخدم وضع إدخال سلسلة الاتصال
اختر تبويب سلسلة الاتصال (تحت Connect via:) في مربع حوار الاتصال للصق تعريف اتصال موجود. يقوم الامتداد بتحليل السلسلة تلقائيا ويملأ حقول الاتصال.
- تعليمة Visual Studio برمجية
- المؤشر
تستخدم الصفحة تخطيطا من عمودين:
- العمود الأيسر: منطقة نصية تسمى سلسلة الاتصال حيث تلصق السلسلة. هناك تلميح أسفل منطقة النص يقول Please حذف كلمة المرور من سلسلة سلسلة الاتصال.
- العمود الأيمن: لوحة تفاصيل الاتصال للقراءة فقط تعرض اسم الخادم المحلل، واسم المستخدم، وقيم اسم قاعدة البيانات أثناء استخراجها.
التحليل يحدث مباشرة أثناء الكتابة أو اللصق. إذا اكتشف المحلل قيمة مفقودة في الخادم أو المستخدم، يظهر خطأ التحقق فوق منطقة النص.
التنسيقات المدعومة
تعترف الإضافة بتسعة صيغ سلسلة الاتصال:
| تنسيق | بادئة أو محفز | مثال |
|---|---|---|
| PostgreSQL URI |
postgres:// او postgresql:// |
postgresql://user:password@host:5432/dbname?sslmode=require |
| JDBC | jdbc:postgresql:// |
jdbc:postgresql://host:5432/dbname |
| فاصلة منقوطة مفصولة (مفتاح = قيمة) | يحتوي ; |
host=localhost;port=5432;dbname=mydb;user=postgres;password=secret |
psql سطر الأوامر |
psql |
psql -h host -p 5432 -U user -d dbname |
| تصدير متغيرات البيئة | export |
export PGHOST=localhostيليه PGPORT، PGUSER، ، PGDATABASEPGPASSWORD |
| Node.js | new Client |
new Client({ host: "localhost", port: 5432, user: "postgres", database: "mydb" }) |
| بايثون (psycopg2) | psycopg2.connect |
psycopg2.connect(user="postgres", password="<your-password>", host="localhost", port=5432, database="mydb") |
| PHP | pg_connect |
pg_connect("host=localhost port=5432 dbname=mydb user=postgres") |
| روبي | PG::Connection.new |
PG::Connection.new(host: "localhost", port: "5432", user: "postgres", database: "mydb") |
يقوم المحلل باستخراج المضيف، والمستخدم، والمنفذ، وقاعدة البيانات، وكلمة المرور من جميع الصيغ. إذا كان حقل كلمة المرور مملوءا بالفعل في الحوار، يحافظ المحلل على القيمة الموجودة.
ملحوظة
بعد التحليل، لا يزال بإمكانك فتح الدرج المتقدم لضبط الإعدادات التي لا تحملها سلاسل الاتصال، مثل أنفاق SSH أو وضع الوصول الذكي لكل اتصال (وضع الوصول Copilot في تعليمة Visual Studio برمجية، وضع الوصول الذكي في Cursor).
تكوين ملفات الشهادات
استخدم إعدادات ملف الشهادة في قسم الأكورديون SSL في درج إعدادات الاتصال المتقدمة عندما تحتاج بيئتك إلى TLS متبادلة أو تحقق صريح من سلطة الشهادة.
- تعليمة Visual Studio برمجية
- المؤشر
وضع شهادة SSL الجذرية
تتحكم قائمة الوسائط المنسدلة في وضع شهادة الجذر في SSL في كيفية تزويد الإضافة بشهادة CA الجذرية. اختر إحدى القيم التالية:
| الوضع | السلوك |
|---|---|
| بلا | لا يتم استخدام شهادة جذر. الإضافة لا تتحقق من سلسلة شهادات الخادم. |
| System | تستخدم الإضافة مخزن الشهادات الموثوق في نظام التشغيل الخاص بك. يتطلب هذا الوضع وضع التحقق الكامل من SSL؛ الامتداد يفرض ذلك تلقائيا. |
| ملف مخصص | يظهر حقل نصي يسمى اسم ملف شهادة جذر SSL . أدخل المسار إلى ملف شهادة CA جذر مشفر بواسطة PEM. |
مهم
عند اختيار النظام، يتم ضبط وضع SSL تلقائيا على التحقق الكامل (Verify-Full ). إذا قمت بتغيير وضع SSL إلى قيمة أخرى أثناء تفعيل النظام ، يظهر خطأ تحقق: "وضع SSLVerify-Full مطلوب عند استخدام مخزن شهادات النظام."
حقول شهادات العميل
قم بتكوين TLS مشترك من خلال توفير مسارات في هذه الحقول ضمن قسم SSL :
| علامة ميدانية | الملكية | الوصف |
|---|---|---|
| شهادة SSL ملف | sslcert |
المسار إلى ملف شهادة العميل. |
| اسم ملف مفتاح SSL | sslkey |
المسار إلى ملف المفتاح الخاص بالعميل. |
| اسم ملف شهادة جذر SSL | sslrootcert |
المسار إلى شهادة CA الجذرية (تظهر فقط عندما يكون وضع شهادة الجذر SSLهو ملف مخصص). |
| اسم ملف SSL CRL | sslcrl |
المسار إلى ملف قائمة إلغاء الشهادات. |
| استخدم ضغط SSL | sslcompression |
يتيح الضغط على اتصال SSL. |
نصيحة
بالنسبة لوضعي Verify-CAوVerify-Full (Verify-Full )، قم دائما بتكوين الشهادة الجذرية بحيث يمكن للإضافة التحقق من صحة شهادة الخادم. استخدم وضع النظام للاعتماد على مخزن CA الموثوق في نظام التشغيل دون تحديد مسار ملف.
معلمات SSL المتقدمة
تفرض بعض خدمات PostgreSQL المدارة TLS ولكنها ترفض التفاوض الافتراضي للملحق. قم بتكوين هذه المعلمات في قسم SSL في درج إعدادات الاتصال المتقدمة للاتصال. يتم تعيين كل معلمة افتراضيا إلى افتراضي، مما يترك المعلمة غير محددة ويحافظ على السلوك السابق.
| علامة ميدانية | الملكية | القيم | استخدمه عندما |
|---|---|---|---|
| وضع شهادة SSL | sslcertmode |
افتراضي، تعطيل، السماح، طلب | يتطلب الخادم SSL ولكنه يرفض شهادة عميل. تعيين إلى تعطيل لإيقاف إرسال واحد. |
| ربط القناة | channel_binding |
افتراضي، تعطيل، تفضيل، طلب | يتطلب الخادم إيقاف ربط قناة SCRAM. تعيين إلى تعطيل. |
| تفاوض SSL | sslnegotiation |
افتراضي، Postgres، Direct | تحتاج إلى التحكم في كيفية التفاوض على تأكيد اتصال TLS. |
| SSL SNI | sslsni |
افتراضي، تشغيل، إيقاف تشغيل | نقطة النهاية حساسة لملحق إشارة اسم خادم TLS. |
| الحد الأدنى لإصدار بروتوكول TLS | ssl_min_protocol_version |
افتراضي، TLS v1 إلى TLS v1.3 | يجب تثبيت الحد الأدنى من إصدار TLS. |
| الحد الأقصى لإصدار بروتوكول TLS | ssl_max_protocol_version |
افتراضي، TLS v1 إلى TLS v1.3 | يجب تثبيت الحد الأقصى لإصدار TLS. |
التحذير
هذه الإعدادات هي تجاوزات التوافق - احتفظ بها في الإعداد الافتراضي ما لم يتطلب خادم معين خلاف ذلك. يؤدي تعطيل ربط القناة أو SSL SNI، أو السماح بإصدارات TLS القديمة (TLS v1 أو TLS v1.1)، إلى خفض أمان الاتصال مقارنة بالإعدادات الافتراضية.
ملحوظة
تظهر الواجهة الخلفية للاتصال المجمعة مع الملحق هذه الإعدادات. إذا كنت لا تراها في قسم SSL ، فقم بتحديث إصدار ملحق PostgreSQL الذي تعلن الواجهة الخلفية المجمعة عنه.
الاتصال ب AWS Aurora RDS ل PostgreSQL
بالنسبة لمثيل Aurora RDS (أو RDS) الذي يتطلب تشفير ولكنه يرفض التفاوض على شهادة العميل:
- قم بتعيين وضع SSL إلى Require.
- قم بتعيين وضع شهادة SSL إلى Disable.
يعكس هذا التكوين إعدادات sslmode=require libpq و sslcertmode=disable ( PGSSLMODE متغيرات البيئة و PGSSLCERTMODE ).
الاتصال بخادم مرن قاعدة بيانات Azure لـ PostgreSQL
إذا فشلت المصادقة حتى يتم تعطيل ربط القناة، فقم بتعيين ربط القناة إلى تعطيل.
يعكس channel_binding=disable هذا التكوين ( PGCHANNELBINDING متغير البيئة).
ملحوظة
اترك أي معلمة في Default لحذفها. يرسل الملحق المعلمات التي تقوم بتغييرها فقط، لذلك لا تتأثر الاتصالات الموجودة.
الاتصال عبر نفق SSH
يقوم نفق SSH بتوجيه اتصال PostgreSQL عبر قناة SSH مشفرة. استخدم هذا الأسلوب عندما لا تكون قاعدة البيانات متاحة مباشرة من محطة عملك. على سبيل المثال، عندما يكون الخادم في شبكة خاصة خلف مضيف باستيون.
- تعليمة Visual Studio برمجية
- المؤشر
تمكين النفق
- افتح مربع حوار الاتصال واختر متقدم لفتح درج إعدادات الاتصال المتقدمة .
- وسع قسم الأكورديون في نفق SSH .
- تحقق من زر تفعيل تفعيل نفق SSH . تظهر حقول اتصال SSH.
حقول أنفاق SSH
| علامة ميدانية | الوصف |
|---|---|
| المضيف | اسم المضيف أو عنوان IP لخادم SSH (مضيف الحصن). |
| المنفذ | رقم منفذ خادم SSH (الافتراضي: 22). |
| اسم المستخدم | اسم المستخدم للمصادقة مع خادم SSH. |
| المصادقة | طريقة المصادقة في SSH. اختر كلمة المرور، أو ملف الهوية، أو وكيل SSH. |
الحقول المتبقية تتغير حسب طريقة المصادقة المختارة:
| أسلوب المصادقة | الحقول الإضافية المعروضة |
|---|---|
| كلمة المرور | كلمة المرور/كلمة المرور: أدخل كلمة مرور SSH. احفظ خانة اختيار كلمة المرور/كلمة المرور لحفظ بيانات الاعتماد. |
| ملف الهوية |
ملف الهوية: أدخل المسار الكامل إلى مفتاح SSH الخاص بك (على سبيل المثال، ~/.ssh/id_ed25519).
كلمة المرور/عبارة المرور: أدخل عبارة المرور المفتاحية إذا كان المفتاح الخاص مشفرا.
حفظ خيار كلمة المرور/رمز المرور . |
| وكيل SSH | لا توجد حقول إضافية. الإضافة تفوض المصادقة إلى وكيل SSH الخاص بنظامك (ssh-agentعلى macOS وLinux، وخدمة OpenSSH Authentication Agent على Windows). |
كيف يعمل النفق
عند تفعيل نفق SSH، يقوم الامتداد أولا بإنشاء اتصال SSH، ثم ينشئ منفذ محلي للتوجيه، ثم يتصل ب PostgreSQL من خلال ذلك التوجيه. وبسبب هذا:
- يجب أن يكون اسم الخادم في حقول الاتصال الرئيسية هو عنوان قاعدة البيانات كما يظهر من مضيف SSH، والذي غالبا
localhostما يكون عنوان IP خاص. - يجب أن يكون المنفذ هو منفذ PostgreSQL على المضيف المستهدف (عادة
5432). - إنشاء أنفاق SSH يضيف زمن استجابة للاتصال. فكر في زيادة قيمة مهلة Connect في الخيارات المتقدمة إذا حدثت مهلة تعطيل (timeouts).
اختر الخيار المتقدم المناسب
| السيناريو | ميزة موصى بها |
|---|---|
لديك رابط مستخدم PostgreSQL أو مقتطف تطبيق، أو psql أمر موجود |
اختر علامة تبويب سلسلة الاتصال لملء الحقول تلقائيا. |
| منظمتك تتطلب ملفات CA مخصصة أو TLS مشترك | قم بتكوين حقول شهادات SSL في قسم SSL في الدرج المتقدم. |
| تحتاج إلى استخدام مخزن شهادات نظام التشغيل الخاص بك للتحقق من الخادم | قم بتعيين وضع شهادة SSL الجذرية على النظامووضع SSL على التحقق الكامل (Verify-Full). |
| يتطلب الخادم المدار (على سبيل المثال، AWS Aurora RDS) SSL ولكنه يرفض شهادة العميل | قم بتعيين وضع SSL إلى وضع شهادة Require وSSL إلى Disable في قسم SSL. |
| قاعدة بيانات Azure لـ PostgreSQL يرفض الخادم المرن المصادقة حتى يتم إيقاف ربط القناة | تعيين ربط القناة إلى تعطيل في قسم SSL . |
| يمكن الوصول إلى قاعدة البيانات فقط من خلال صندوق قفز أو مضيف باستيون | تفعيل نفق SSH في قسم نفق SSH في الدرج المتقدم. |