PostgreSQL ma'lumotlar bazasiga ulanish. PostgreSQL Subd User Management dasturini ishga tushirish

Sudo yordam dasturida boshqa foydalanuvchilar nomidan buyruqlar bajarilishini tashkil qilish uchun foydalaniladigan zaiflik (CVE-2019-18634) aniqlandi, bu tizimdagi imtiyozlaringizni oshirish imkonini beradi. Muammo […]

WordPress 5.3-ning chiqarilishi WordPress 5.0-da taqdim etilgan blok muharririni yangi blok, yanada intuitiv o'zaro ta'sirlar va yaxshilangan foydalanish imkoniyati bilan yaxshilaydi va kengaytiradi. Muharrirdagi yangi xususiyatlar [...]

To'qqiz oylik ishlab chiqishdan so'ng FFmpeg 4.2 multimedia to'plami mavjud bo'lib, u turli multimedia formatlarida (yozuv, konvertatsiya qilish va [...]) operatsiyalar uchun ilovalar to'plami va kutubxonalar to'plamini o'z ichiga oladi.

  • Linux Mint 19.2 Cinnamon-dagi yangi xususiyatlar

    Linux Mint 19.2 uzoq muddatli qo'llab-quvvatlash versiyasi bo'lib, 2023 yilgacha qo'llab-quvvatlanadi. U yangilangan bilan birga keladi dasturiy ta'minot va yaxshilanishlar va ko'plab yangi [...]

  • Linux Mint 19.2 tarqatilishi chiqarildi

    Ubuntu 18.04 LTS paket bazasida yaratilgan va 2023 yilgacha qo'llab-quvvatlanadigan Linux Mint 19.x filialining ikkinchi yangilanishi Linux Mint 19.2 tarqatish to'plamining chiqarilishi taqdim etildi. Tarqatish to'liq mos keladi [...]

  • Yangi BIND xizmati relizlari mavjud boʻlib, ularda xatoliklar tuzatilgan va xususiyatlar yaxshilangan. Yangi nashrlarni ishlab chiquvchining saytidagi yuklab olishlar sahifasidan yuklab olish mumkin: [...]

    Exim - bu Kembrij universitetida foydalanish uchun ishlab chiqilgan xabarlarni uzatish agenti (MTA). Unix tizimlari Internetga ulangan. [...] ga muvofiq bepul mavjud.

    Deyarli ikki yillik rivojlanishdan so'ng, ZFS on Linux 0.8.0 chiqarildi va amalga oshirildi fayl tizimi ZFS, Linux yadrosi uchun modul sifatida ishlab chiqilgan. Modul Linux yadrolari 2.6.32 dan [...]

    Internet protokollari va arxitekturasini ishlab chiquvchi Internet muhandislik ishchi guruhi (IETF) Avtomatik sertifikatlarni boshqarish muhiti (ACME) protokoli uchun RFCni shakllantirishni yakunladi [...]

    Jamiyat tomonidan boshqariladigan va sertifikatlarni hammaga bepul taqdim etuvchi Let’s Encrypt notijorat sertifikatlashtirish markazi o‘tgan yil yakunlarini sarhisob qildi va 2019 yilgi rejalar haqida gapirdi. […]

    Tizim boshqaruvi

    Bu post - qisqa ko'rsatma yangi boshlanuvchilar uchun, PostgreSQL-ni birinchi marta o'rnatganlar uchun. Bu yerda PostgreSQL bilan ishlashni boshlash uchun kerak bo'lgan barcha ma'lumotlar.

    DBMSga ulanish

    Birinchi narsa PostgreSQL-ga kirish, superuser sifatida kirishdir.
    Autentifikatsiya sozlamalari pg_hba.conf faylida joylashgan.
    1. mahalliy barcha postgres peer
    Ushbu satr postgres foydalanuvchisi har qanday mahalliy PostgreSQL ma'lumotlar bazasiga rozetka orqali ulanishi mumkinligini aytadi. Parolni kiritish shart emas, operatsion tizim foydalanuvchi nomini uzatadi va u autentifikatsiya qilish uchun ishlatiladi.
    Biz ulanamiz:
    1. $ sudo -u postgres psql postgres postgres
    Tarmoq orqali ulanish uchun pg_hdba.conf ga qatorni qo'shing:
    1. # TYPE MA'LUMOTLAR BAZASI FOYDALANISH MANZIL USULI
    2. hostssl hammasi 0.0.0.0/0 md5
    Autentifikatsiya usuli md5 ulanish uchun parolni kiritishingiz kerakligini bildiradi. Agar siz psql konsolidan ko'p foydalansangiz, bu juda qulay emas. Agar biror narsani avtomatlashtirishni istasangiz, yomon xabar shundaki, psql parolni argument sifatida qabul qilmaydi. Ushbu muammolarni hal qilishning ikki yo'li mavjud: tegishli muhit o'zgaruvchisini o'rnatish va parolni maxsus faylda saqlash .pgpass .

    PGPASSWORD muhit o'zgaruvchisini sozlash

    Darhol aytishim kerakki, bu usuldan foydalanmaslik yaxshiroqdir, chunki ba'zilar OS ko‘rish imkonini beradi oddiy foydalanuvchilar ps bilan muhit o'zgaruvchilari. Ammo agar xohlasangiz, terminalda yozishingiz kerak:
    1. eksport PGPASSWORD = mypasswd
    O'zgaruvchi joriy seansda mavjud bo'ladi. Agar siz barcha seanslar uchun o'zgaruvchini o'rnatishingiz kerak bo'lsa, unda siz misoldagi qatorni .bashrc yoki .bash_profile fayliga qo'shishingiz kerak.

    Parolni .pgpass faylida saqlash

    Agar biz Linux haqida gapiradigan bo'lsak, fayl $ HOME (/ home / username) da joylashgan bo'lishi kerak. Faqat egasi (0600) yozish va o'qish ruxsatiga ega bo'lishi kerak. Faylga forma satrlarini yozishingiz kerak:
    1. xost nomi: port: ma'lumotlar bazasi: foydalanuvchi nomi: parol
    Birinchi to'rtta maydonda siz "*" yozishingiz mumkin, bu filtrlashning yo'qligini bildiradi (to'liq tanlov).

    Yordam ma'lumotlarini olish

    \? - barcha mavjud buyruqlarni ularning qisqacha tavsifi bilan birga beradi;
    \ h - barcha mavjud so'rovlar ro'yxatini ko'rsatadi,
    \ h CREATE - ma'lum bir so'rov uchun yordamni ko'rsatadi.

    DBMS foydalanuvchilarini boshqarish

    PostgreSQL foydalanuvchilari ro'yxatini qanday olish mumkin? Yoki pg_user jadvalini so'rashingiz mumkin.
    1. pg_user dan * TANLASH;

    Yangi PostgreSQL foydalanuvchisini yaratish

    Psql qobig'idan siz buni CREATE buyrug'i bilan qilishingiz mumkin.
    1. FOYDALANUVCHI foydalanuvchi nomini parol "parol" BILAN YARATING;
    Yoki terminaldan foydalanishingiz mumkin.
    1. createuser -S -D -R -P foydalanuvchi nomi
    Sizdan parol so'raladi.

    Foydalanuvchi parolini o'zgartiring

    1. FOYDALANUVCHI foydalanuvchi nomini "parol" BILAN PAROL BILAN O'ZGARTIRING;

    Foydalanuvchi rollarini o'zgartirish

    Foydalanuvchiga ma'lumotlar bazalarini yaratishga ruxsat berish uchun so'rovni bajaring:
    1. CREATEDB BILAN ROL foydalanuvchi nomini O'ZGARTIRING;

    Ma'lumotlar bazasini boshqarish

    Psql terminalida ma'lumotlar bazalarini ro'yxatga olish: Linux terminalida bir xil:
    1. psql -l
    psql dan ma'lumotlar bazasini yaratish (PostgreSQL terminali)
    1. MA'LUMOTLAR BAZASINI YARATING dbname OWNER dbadmin;
    Terminal yordamida yangi ma'lumotlar bazasini yaratish:
    1. createdb -O foydalanuvchi nomi dbname;

    Ma'lumotlar bazasiga kirish huquqlarini o'rnatish

    Agar foydalanuvchi ma'lumotlar bazasining egasi (egasi) bo'lsa, u barcha huquqlarga ega. Ammo agar siz boshqa foydalanuvchiga ruxsat berishni istasangiz, buni GRANT buyrug'i yordamida qilishingiz mumkin. Quyidagi so'rov foydalanuvchiga ma'lumotlar bazasiga ulanish imkonini beradi. Lekin unutmang konfiguratsiya fayli pg_hba.conf, u ham tegishli ulanish ruxsatlariga ega bo'lishi kerak.
    1. MA'LUMOTLAR BAZASIDA dbname TO dbadminga ulanishni GRANT;

    Diqqat : Agar siz Windows-da ishlasangiz va hali PostgreSQL va Debet Plus V12-ni o'rnatmagan bo'lsangiz, Debit Plus V12 yig'ilishini yuklab olish sahifasidan oldindan o'rnatilgan PostgreSQL DBMS va ulangan ma'lumotlar bazasi (Ukraina uchun asosiy konfiguratsiya bilan) bilan yuklab olishingiz mumkin. Aks holda, avval PostgreSQL DBMSni o'rnatishingiz kerak va dasturiy ta'minot to'plami"Debit Plus V12", shundan so'ng ushbu ko'rsatmalarga rioya qilgan holda ulanishni sozlash va PostgreSQL ma'lumotlar bazasini import qilish mumkin bo'ladi.

    PostgreSQL ma'lumotlar bazasini ulash uchun siz quyidagilarni bajarishingiz kerak:

      "Debit Plus V12" ni ishga tushiring va yangi baza qo'shing ( kontekst menyusi"Yangisini qo'shish").

      "Mavjudni ro'yxatga qo'shish" katagiga belgi qo'ying.

    "DBMS" - POSTGRE.

    "Ma'lumotlar bazasi serveri" - localhost.

    "Ma'lumotlar bazasi nomi" - PostgreSQL DBMS dan ma'lumotlar bazasi nomini lotin harflari (kichik harflar) bilan belgilang.

    Eslatma: Odatda bitta tayanch ishlatiladi. Maxsus maqsadlar uchun ma'lumotlar bazasini bir nechtaga bo'lish mumkin, keyin "Bir nechta ma'lumotlar bazasidan foydalanish" yonidagi katakchani belgilashingiz kerak, "Keyingi" tugmasini bosing va "teglar" ning jismoniy ma'lumotlar bazalariga mos kelishini ko'rsating. Bu, masalan, bir nechta korxonalarning ma'lumotlar bazalari bir xil ma'lumotnomalarga (kontragentlar, ob'ektlar va boshqalar) murojaat qilsa, kerak bo'lishi mumkin. Bu ish boshqa muhokama qilinmaydi.

    "Sozlamalar katalogi" - PostgreSQL uchun asosiy sozlamalarga yo'lni belgilang (disk \ DebetPlusV12 \ base \ pgdpbase).

    Saqlash o'zgarishlar kiritildi"Finish" tugmasini bosish orqali.

      pgAdmin (PostgreSQL DBMS ma'muri) ni ishga tushiring, server qo'shing (Fayl / Server qo'shish ...) va yangi ma'lumotlar bazasini qo'shing (Yangi ma'lumotlar bazasi ... menyusi).

    Xost maydoniga server nomini, localhostni kiriting, qolgan maydonlarni o'zingiz xohlagancha to'ldiring.

    "Ism" maydoniga ma'lumotlar bazasi nomini kiriting ("Debet Plus V12" ma'lumotlar bazasiga ulanish sozlamalarida "Server" maydoniga kiritilgan bilan bir xil).

      Ma'lumotlar bazasini arxivdan import qilish uchun "Qayta tiklash ..." dan foydalaning.

    dpbase.bakup ma'lumotlar bazasi arxiviga yo'lni belgilang (disk \ DebetPlusV12 \ base \ pgdpbase).

      Siz administrator bo'lgan dpadmin foydalanuvchisini sukut bo'yicha Debit Plus V12 ga qo'shishingiz mumkin (parolsiz).

    Ushbu foydalanuvchiga barcha huquqlarni tayinlang.

    Eslatma : Siz dpadmin foydalanuvchisini qo'sha olmaysiz, keyin ma'lumotlar bazasini faollashtirishda siz postgres administrator nomini kiritishingiz kerak bo'ladi.

    Bazalar ro'yxatini yangilang ("Yangilash" menyusi).

    Eslatma : Agar siz foydalanuvchiga "Superuser" huquqlarini berishni xohlamasangiz, u holda huquqlarni "Jadvallar" va "Ko'rishlar" ga tayinlang. Buning uchun tegishli ob'ektni tanlang va Grant Wizard kontekst menyusi bandini tanlang.

    "Tanlash" yorlig'ida "Hammasini tekshirish" tugmasini bosing va "Imtiyozlar" yorlig'ida "HAMMA" katagiga belgi qo'ying va "Qo'shish / O'zgartirish" tugmasini bosing. O'zgartirishlaringizni saqlang.

      Debet Plus V12 dasturida ma'lumotlar bazasiga ulanish sozlamalarini faollashtiring ("Faol qilish" kontekst menyusi).

    Tizim ma'lumotlar bazasiga ulanish uchun parol so'raydi. Ha ni bosing.

    Diqqat! Agar bunday xabar paydo bo'lmasa, "Xizmat" / "Ma'lumotlar bazasi tuzilmalarini yangilash" menyusini tanlab, ma'lumotlar bazasi tuzilmalarini yangilashni boshlang.

    Natijada, quyidagi oyna paydo bo'ladi:

    Sukut bo'yicha barcha katakchalarni qoldiring (barcha ma'lumotlar bazasi jadvallari uchun "Qayta indeks" ustunida katakchalar bo'lishi kerak).

    O'zgartirishni tugatgandan so'ng siz ishlashni boshlashingiz mumkin.

      "Debit Plus V12" ni ishga tushiring va yangi bazani qo'shing ("Yangisini qo'shish" kontekst menyusi).

      "Mavjudni ro'yxatga qo'shish" katagiga belgi qo'ying:

    Birinchi maydonda ma'lumotlar bazasi uchun o'zboshimchalik nomini belgilang (har bir ishlaydigan kompyuterda nom har xil bo'lishi mumkin).

    "DBMS" - POSTGRE.

    Ma'lumotlar bazasi serveri - bu serverning nomi yoki IP-manzili.

    Ma'lumotlar bazasi serveri porti - ma'lumotlar bazasi serverining portini belgilang, sukut bo'yicha 5432.

    "Ma'lumotlar bazasi nomi" - ma'lumotlar bazasi nomini lotin harflarida kichik harf bilan belgilang.

    "Ma'lumotlar bazasi sxemasi nomi" dpbase.

    Faqat "Debit Plus avtorizatsiyasidan foydalanish" katagiga belgi qo'ying.

    "Sozlamalar katalogi" - PostgreSQL uchun asosiy sozlamalarga yo'lni belgilang (tarmoq yo'li \ DebetPlusV12 \ base \ pgdpbase).

    "Finish" tugmasini bosish orqali kiritilgan o'zgarishlarni saqlang va keyin bazani faollashtiring.

      Ishga tushirish parametrlarini o'rnatish (bosh menyu "Sozlamalar" / "Ishga tushirish parametrlari")

    Ko'rsatilgan oynada "Sozlamalarni o'zgartirish uchun parol" maydoniga 150301 parolini kiriting va "Qabul qilish" tugmasini bosing.

    Serverdagi JDebet jildiga yo'lni belgilang va saqlash tugmasini bosing. Baza faol bo'lsin va siz ishga kirishingiz mumkin.

    0

    Men qotib qoldim. Bizda postgres 9.2 ma'lumotlar bazasi mavjud bo'lib, biz bir muncha vaqtdan beri foydalanmoqdamiz. Endi biz unga o'z tarmog'imizdan tashqaridan ulanish imkoniyatiga ega bo'lishimiz kerak.

    Shunday qilib, biz tashqi IP-manzilni o'rnatamiz va telnet orqali masofaviy xostdan 5432-portga ulanishimiz mumkinligini tekshiramiz. Shunday qilib, buni isbotlaydi tarmoq ulanishi ishlaydi, xavfsizlik devorlari va hokazo. Hamma narsa yaxshi.

    Men ulanishga harakat qilganimda:
    PSQL -h db.host.com -d dbname -p 5432 -U foydalanuvchisi

    Men Psql-ni qaytarib olaman: server kutilmaganda ulanishni yopib qo'ydi.

    Men buni tasdiqladim
    listen_addresses = "*" postgresql.conf da o'rnatiladi

    Va pg_hba.conf da bizda o'qiydigan qator mavjud (faqat sinov uchun)
    master all all 0.0.0.0/0 md5

    Va tanlangan o'zgarishlarni tekshirish uchun ma'lumotlar bazasini qayta yukladim.
    Shunday qilib, bu har qanday manbadan ulanishga ruxsat berishi kerak.

    Ma'lumotlar bazasi serverida psql versiyasi 9.2.14, mijozda esa 9.2.13.

    Har qanday taklif yoki g'oyalar?

    • 1 javob
    • Tartiblash:

      Faoliyat

    1

    Qo'shimcha ma'lumot olish uchun men bir nechta narsalarni sinab ko'rmoqchiman:

      tail Postgres serverga kirganingizda u erda nima sodir bo'lishini ko'rish uchun.

      Server versiyasiga ko'proq yoki kamroq mos kelishiga ishonch hosil qilish uchun psql --version ni ishga tushiring. (Men buni allaqachon qilganingizni ko'raman, lekin men uni bu erda avlodlar uchun qoldiraman.)

      Qanchalik muvaffaqiyatsiz bo'lishini ko'rish uchun strace psql .... ni ishga tushiring.

    Bu men uchun hali ham tarmoq muammosi kabi ko'rinadi. Nima bo'ldi telnet buyrug'i kim bilan ishlayapsiz? "Tashqi IP" AWS da siz kabi eshitiladi. Moslashtirish masofaviy kirish VPC-ga ko'p qadamlar qo'yadi. Sizda tashqarida ishlaydigan boshqa xizmatlar bormi?

    Shuningdek, siz Postgres serverini o'chirib, 5432 ni tinglash uchun nc dan foydalanib muammolarni hal qilishingiz mumkin. Keyin telnetga ulaning va ma'lumotlarni oldinga va orqaga yuborishingiz mumkinligini tekshiring.

    1

    Pol, takliflar uchun rahmat. Men cho'zdim va versiyalarni tekshirdim. Va siz AWS-dan ulanishga to'g'ri harakat qildingiz. Ma'lum bo'lishicha, bu men AWS nashr etadigan IP-2 IP diapazonlariga kirishga ruxsat berish uchun yuk balansida ishlatgan daraja edi. Irule-ni o'chirib qo'yganimda, darhol ulanishim mumkin edi. Demak, bu g'ayrioddiy mantiq bo'lishi kerak, chunki men EC2 instansiyasining umumiy IP-manzilini tekshirdim va u haqiqatan ham CIDR bildirishnomasi orqali irule ro'yxatiga kiritilgan. -