Povezivanje PostgreSQL baze podataka. Početak rada s PostgreSQL Upravljanje korisnicima baze podataka

Ranjivost (CVE-2019-18634) identificirana je u uslužnom programu sudo koji se koristi za organiziranje izvršavanja naredbi u ime drugih korisnika, što vam omogućuje povećanje privilegija u sustavu. Problem […]

Izdanje WordPressa 5.3 poboljšava i proširuje uređivač blokova predstavljen u WordPressu 5.0 s novim blokom, intuitivnijom interakcijom i poboljšanom pristupačnošću. Nove značajke u uređivaču […]

Nakon devet mjeseci razvoja dostupan je multimedijski paket FFmpeg 4.2 koji uključuje skup aplikacija i kolekciju biblioteka za rad na raznim multimedijskim formatima (snimanje, konvertiranje i […]

  • Nove značajke u Linux Mint 19.2 Cinnamon

    Linux Mint 19.2 izdanje je dugoročne podrške koja će biti podržana do 2023. Dolazi s ažuriranim softver i sadrži poboljšanja i mnoge nove […]

  • Objavljena distribucija Linux Mint 19.2

    Predstavljeno je izdanje distribucije Linux Mint 19.2, drugog ažuriranja ogranka Linux Mint 19.x, formiranog na bazi paketa Ubuntu 18.04 LTS i podržanog do 2023. godine. Distribucija je potpuno kompatibilna [...]

  • Dostupna su nova izdanja usluge BIND koja sadrže ispravke grešaka i poboljšanja značajki. Nova izdanja mogu se preuzeti sa stranice za preuzimanje na web stranici programera: […]

    Exim je agent za prijenos poruka (MTA) razvijen na Sveučilištu Cambridge za korištenje u Unix sustavi spojen na internet. Besplatno je dostupan u skladu s [...]

    Nakon gotovo dvije godine razvoja, predstavljeno je izdanje ZFS-a na Linuxu 0.8.0, implementacija sustav datoteka ZFS, pakiran kao modul za Linux kernel. Modul je testiran s Linux kernelima od 2.6.32 do […]

    IETF (Internet Engineering Task Force), koja razvija internetske protokole i arhitekturu, dovršila je RFC za ACME (Automatic Certificate Management Environment) protokol […]

    Neprofitno certifikacijsko tijelo Let’s Encrypt, koje kontrolira zajednica i svima besplatno daje certifikate, sumiralo je rezultate protekle godine i govorilo o planovima za 2019. godinu. […]

    Administracija sustava

    Ovaj post je kratke upute za početnike, za one koji su prvi put instalirali PostgreSQL. Ovdje su sve informacije koje su vam potrebne da biste započeli s PostgreSQL-om.

    Spajanje na DBMS

    Prvo što treba učiniti je dobiti pristup PostgreSQL-u, pristupiti kao superkorisnik.
    Postavke provjere autentičnosti nalaze se u datoteci pg_hba.conf.
    1. lokalni svi postgres peers
    Ovaj redak označava da se postgres korisnik može spojiti na bilo koju lokalnu PostgreSQL bazu podataka putem utičnice. Nema potrebe za unosom lozinke, operativni sustav će prenijeti korisničko ime i ono će se koristiti za autentifikaciju.
    Povežimo se:
    1. $ sudo -u postgres psql postgres postgres
    Da biste se mogli povezati putem mreže, morate dodati red u pg_hdba.conf:
    1. # TIP BAZE PODATAKA METODA ADRESE KORISNIKA
    2. hostssl sve sve 0.0.0.0/0 md5
    Metoda provjere autentičnosti md5 znači da ćete morati unijeti lozinku za povezivanje. Ovo nije baš zgodno ako često koristite psql konzolu. Ako želite automatizirati neke radnje, loša vijest je da psql ne prihvaća lozinku kao argument. Postoje dva načina za rješavanje ovih problema: postavljanje odgovarajuće varijable okoline i pohranjivanje lozinke u posebnu .pgpass datoteku.

    Postavljanje varijable okruženja PGPASSWORD

    Odmah ću reći da je bolje ne koristiti ovu metodu, jer neki OS omogućiti vam da vidite obični korisnici varijable okruženja pomoću ps. Ali ako želite, morate napisati u terminalu:
    1. izvoz PGPASSWORD=mypasswd
    Varijabla će biti dostupna u trenutnoj sesiji. Ako trebate postaviti varijablu za sve sesije, morate dodati redak iz primjera u datoteku .bashrc ili .bash_profile

    Pohranjivanje lozinke u .pgpass datoteku

    Ako govorimo o Linuxu, tada bi se datoteka trebala nalaziti u $HOME (/home/username). Samo vlasnik (0600) mora imati prava pisanja i čitanja. Morate napisati retke poput ovih u datoteku:
    1. hostname:port:baza podataka:korisničko ime:lozinka
    Možete napisati “*” u prva četiri polja, što znači da nema filtriranja (potpuni odabir).

    Dobivanje informacija za pomoć

    \? - prikazat će sve dostupne naredbe zajedno s njihovim kratkim opisom,
    \h - prikazat će popis svih dostupnih upita,
    \h CREATE - pružit će pomoć za određeni zahtjev.

    DBMS upravljanje korisnicima

    Kako doći do popisa PostgreSQL korisnika? Ili možete postaviti upit tablici pg_user.
    1. SELECT * FROM pg_user;

    Stvaranje novog PostgreSQL korisnika

    Iz psql ljuske to se može učiniti pomoću naredbe CREATE.
    1. STVARANJE KORISNIČKOG korisničkog imena SA lozinkom "password" ;
    Ili možete koristiti terminal.
    1. createuser -S -D -R -P korisničko ime
    Od vas će se tražiti da unesete lozinku.

    Promjena korisničke lozinke

    1. PROMIJENITE KORISNIČKO korisničko ime SA LOZINKOM "password" ;

    Promjena korisničkih uloga

    Da biste korisniku dali dopuštenje za stvaranje baza podataka, pokrenite sljedeći upit:
    1. ALTER ROLE korisničko ime WITH CREATEDB ;

    Upravljanje bazom podataka

    Prikaz popisa baza podataka u psql terminalu: Isto s Linux terminala:
    1. psql -l
    Stvaranje baze podataka iz psql-a (PostgreSQL terminal)
    1. STVARANJE BAZE PODATAKA dbname VLASNIK dbadmin ;
    Stvaranje nove baze podataka pomoću terminala:
    1. createdb -O korisničko ime dbname;

    Postavljanje prava pristupa bazi podataka

    Ako je korisnik vlasnik baze podataka, tada ima sva prava. Ali ako želite dati pristup drugom korisniku, to možete učiniti pomoću naredbe GRANT. Upit u nastavku omogućit će korisniku povezivanje s bazom podataka. Ali ne zaboravite na konfiguracijska datoteka pg_hba.conf, također mora imati odgovarajuće dozvole za povezivanje.
    1. GRANT CONNECT ON DATABASE dbname TO dbadmin ;

    Pažnja : Ako radite na Windows OS-u i još niste instalirali PostgreSQL i Debit Plus V12, tada sa stranice za preuzimanje možete preuzeti sklop Debit Plus V12 s unaprijed instaliranim PostgreSQL DBMS-om i povezanom bazom podataka (s osnovnom konfiguracijom za Ukrajinu) . U suprotnom, morate prvo instalirati PostgreSQL DBMS i programski paket“Debit Plus V12”, nakon čega možete postaviti vezu i uvesti PostgreSQL bazu podataka slijedeći ove upute.

    Za povezivanje PostgreSQL baze podataka morate izvršiti sljedeće korake:

      Pokrenite "Debit Plus V12" i dodajte novu bazu ( kontekstni izbornik"Dodaj novi")

      Ostavite kvačicu u okviru "Dodaj postojeće na popis".

    "DBMS" - POSTGRE.

    "Poslužitelj baze podataka" - localhost.

    “Naziv baze podataka” - navedite naziv baze podataka iz PostgreSQL DBMS malim slovima latinice (mala slova).

    Bilješka: Obično se koristi jedna baza. Za posebne svrhe, baza podataka može se podijeliti na nekoliko, tada morate potvrditi okvir pored "Koristi više baza podataka", kliknuti gumb "Dalje" i označiti korespondenciju "oznaka" s fizičkim bazama podataka. To može biti potrebno, na primjer, ako će baze podataka nekoliko poduzeća upućivati ​​na iste imenike (sugovornici, stavke itd.). O ovom slučaju se dalje ne raspravlja.

    “Direktor postavki” - odredite put do postavki baze podataka za PostgreSQL (drive\DebetPlusV12\base\pgdpbase).

    Uštedjeti napravljene promjene klikom na gumb "Gotovo".

      Pokrenite pgAdmin (PostgreSQL DBMS administrator), dodajte poslužitelj (File/Add Server...) i dodajte novu bazu podataka (izbornik "New Database...").

    Unesite naziv poslužitelja, localhost u polje Host, ispunite preostala polja po želji.

    U polje „Ime“ unesite naziv baze podataka (isto kao što je uneseno u polje „Server“ u postavkama za povezivanje s bazom podataka „Debit Plus V12“).

      Za uvoz baze podataka iz arhive koristite izbornik "Vrati...".

    Navedite stazu do arhive baze podataka dpbase.bakup (drive\DebetPlusV12\base\pgdpbase).

      Možete dodati korisnika dpadmin, koji je standardno administrator u Debit Plus V12 (bez lozinke).

    Dodijelite sva prava ovom korisniku.

    Bilješka : Ne možete dodati korisnika dpadmin, tada ćete prilikom aktivacije baze podataka morati unijeti ime postgres administratora.

    Osvježite popis baza podataka (izbornik “Osvježi”).

    Bilješka : Ako korisniku ne želite dodijeliti prava “Superuser”, dodijelite prava “Tablicama” i “Prikazima”. Da biste to učinili, odaberite odgovarajući objekt i odaberite stavku kontekstnog izbornika "Grant Wizard".

    Na kartici “Odabir” kliknite gumb “Provjeri sve”, a na kartici “Privilegije” označite “SVE” i kliknite gumb “Dodaj/Promijeni”. Spremite promjene.

      Aktivirajte postavku veze s bazom podataka u softveru Debit Plus V12 (kontekstni izbornik “Učini aktivnim”).

    Sustav će tražiti lozinku za povezivanje s bazom podataka. Pritisnite Da.

    Pažnja! Ako se takva poruka ne pojavi, pokrenite ažuriranje struktura baze podataka odabirom stavke izbornika “Alati” / “Ažuriranje struktura baze podataka”.

    Kao rezultat, pojavit će se sljedeći prozor:

    Ostavite sve potvrdne okvire kao zadane (moraju postojati kvačice u stupcu "Reindex" za sve tablice baze podataka).

    Nakon dovršetka izmjene možete započeti s radom.

      Pokrenite “Debit Plus V12” i dodajte novu bazu (kontekstni izbornik “Dodaj novo”).

      Ostavite kvačicu u polju "Dodaj postojeće na popis":

    U prvo polje unesite proizvoljni naziv baze (ime može biti drugačije na svakom radnom računalu).

    "DBMS" - POSTGRE.

    “Poslužitelj baze podataka” - naziv ili IP adresa poslužitelja.

    “Priključak poslužitelja baze podataka” - odredite priključak poslužitelja baze podataka, zadani je 5432.

    “Naziv baze podataka” - unesite naziv baze podataka malim slovima latinice.

    "Naziv sheme baze podataka" - dpbase.

    Označite samo okvir "Koristi Debit Plus autorizaciju".

    “Direktor postavki” - odredite put do postavki baze podataka za PostgreSQL (mrežni put\DebetPlusV12\base\pgdpbase).

    Spremite promjene klikom na gumb "Završi", a zatim aktivirajte bazu podataka.

      Postavite opcije pokretanja (glavni izbornik “Postavke” / “Opcije pokretanja”)

    U prozoru koji se pojavi, u polje "Lozinka za promjenu postavki" unesite lozinku 150301 i kliknite na gumb "Prihvati".

    Navedite put do mape JDebet na poslužitelju i kliknite na Spremi. Aktivirajte bazu podataka i možete početi s radom.

    0

    Zbunjena sam. Imamo postgres 9.2 bazu podataka koju koristimo već neko vrijeme. Sada se moramo moći povezati na njega izvan naše mreže.

    Dakle, konfiguriramo vanjsku IP adresu i testiramo možemo li se spojiti na port 5432 s udaljenog glavnog računala putem telneta. Dakle, ovo to dokazuje Mrežna veza radi, firewall, itd. Sve dobro.

    Kada se pokušam povezati s:
    PSQL -h db.host.com -d dbname -p 5432 -U korisnik

    Vratit ću se Psql: Poslužitelj je neočekivano prekinuo vezu.

    Provjerio sam to
    listen_addresses = "*" postavljeno je u postgresql.conf

    A u pg_hba.conf imamo redak koji glasi (samo u svrhu testiranja)
    domaćin sve sve 0.0.0.0/0 md5

    Ponovno sam učitao bazu podataka da testiram odabrane promjene.
    Dakle, ovo bi trebalo omogućiti veze iz bilo kojeg izvora.

    Verzija psql-a na poslužitelju baze podataka je 9.2.14, a na klijentu je 9.2.13.

    Imate li prijedloga ili ideja?

    • 1 odgovor
    • Sortiranje:

      Aktivnost

    1

    Želio bih isprobati nekoliko stvari da dobijem više informacija:

      Postgres tail prijavite se na poslužitelj da vidite što se tamo događa kada ste povezani.

      Pokrenite psql --version kako biste bili sigurni da više-manje odgovara verziji poslužitelja. (Vidim da ste ovo već učinili, ali ostavit ću to ovdje za potomstvo.)

      Pokrenite strace psql.... da vidite koliko daleko ide do kvara.

    Ovo mi još uvijek zvuči kao problem s mrežom. Što se dogodilo telnet naredba s kim radiš? "Vanjski IP" zvuči isto kao i na AWS-u. postavke daljinski pristup do VPC-a potrebno je mnogo koraka. Imate li neke druge usluge otvorene prema van koje rade?

    Također možete riješiti problem tako da isključite Postgres poslužitelj i koristite nc za slušanje na 5432. Zatim telnet i pogledajte možete li slati podatke naprijed-natrag.

    1

    Paul, hvala na prijedlozima. Napravio sam rastezanje i provjerio verzije. I bio si u pravu, pokušao sam se povezati s AWS-a. Ispostavilo se da je to razina koju sam koristio u balanseru opterećenja kako bih omogućio pristup samo IP-2 IP rasponima koje AWS objavljuje. Kad sam onemogućio irule, mogao sam se odmah povezati. Dakle, ovo mora biti nadrealna logika budući da sam provjerio javni IP svoje EC2 instance i doista je naveden u irule putem CIDR obavijesti. -