Ansluter till postgresql från Windows. Postgresql Fjärranslutning


En sårbarhet (CVE-2019-18634) har identifierats i sudo-verktyget, som används för att organisera exekveringen av kommandon på uppdrag av andra användare, vilket gör att du kan öka dina privilegier i systemet. Problem […]

Utgivningen av WordPress 5.3 förbättrar och utökar blockredigeraren som introducerades i WordPress 5.0 med ett nytt block, mer intuitiv interaktion och förbättrad tillgänglighet. Nya funktioner i redigeraren […]

Efter nio månaders utveckling är multimediapaketet FFmpeg 4.2 tillgängligt, vilket inkluderar en uppsättning applikationer och en samling bibliotek för operationer på olika multimediaformat (inspelning, konvertering och […]

  • Nya funktioner i Linux Mint 19.2 Cinnamon

    Linux Mint 19.2 är en långsiktig supportversion som kommer att stödjas fram till 2023. Den levereras med uppdaterad programvara och innehåller förbättringar och många nya […]

  • Linux Mint 19.2-distribution släppt

    Presenterad är releasen av Linux Mint 19.2-distributionen, den andra uppdateringen till Linux Mint 19.x-grenen, bildad på Ubuntu 18.04 LTS-paketbasen och stöds till 2023. Distributionen är helt kompatibel [...]

  • Nya BIND-tjänstutgåvor är tillgängliga som innehåller buggfixar och funktionsförbättringar. Nya utgåvor kan laddas ner från nedladdningssidan på utvecklarens webbplats: […]

    Exim är en meddelandeöverföringsagent (MTA) utvecklad vid University of Cambridge för användning på Unix-system anslutna till Internet. Den är fritt tillgänglig i enlighet med [...]

    Efter nästan två års utveckling presenteras releasen av ZFS på Linux 0.8.0, en implementering av ZFS-filsystemet, designat som en modul för Linux-kärnan. Modulen har testats med Linux-kärnor från 2.6.32 till […]

    IETF (Internet Engineering Task Force), som utvecklar Internetprotokoll och arkitektur, har slutfört en RFC för ACME (Automatic Certificate Management Environment)-protokollet […]

    Den ideella certifieringsmyndigheten Let’s Encrypt, som kontrolleras av communityn och tillhandahåller certifikat gratis till alla, summerade det senaste årets resultat och pratade om planerna för 2019. […]

    0

    Jag är stum. Vi har en postgres 9.2-databas som vi har använt ett tag. Nu måste vi kunna ansluta till den utanför vårt nätverk.

    Så vi konfigurerar den externa IP-adressen och testar att vi kan ansluta till port 5432 från fjärrvärden via telnet. Så detta bevisar att nätverksanslutningen fungerar, brandväggar, etc. är alla bra.

    När jag försöker ansluta till:
    PSQL -h db.host.com -d dbname -p 5432 -U användare

    Jag kommer tillbaka Psql: Servern stängde anslutningen oväntat.

    Jag kollade det
    listen_addresses = "*" är satt i postgresql.conf

    Och i pg_hba.conf har vi en rad som läser (endast för teständamål)
    värd alla alla 0.0.0.0/0 md5

    Och jag laddade om databasen för att testa dess valda ändringar.
    Så detta bör tillåta anslutningar från vilken källa som helst.

    Psql-versionen på databasservern är 9.2.14 och på klienten är den 9.2.13.

    Några förslag eller idéer?

    • 1 svar
    • Sortering:

      Aktivitet

    1

    Jag skulle vilja prova några saker för att få mer information:

      Postgres tail logga in på servern för att se vad som händer där när du är ansluten.

      Kör psql --version för att se till att den mer eller mindre matchar serverversionen. (Jag ser att du redan har gjort det här, men jag lämnar det här för eftervärlden.)

      Kör strace psql.... för att se hur långt det går till misslyckande.

    Detta låter fortfarande som ett nätverksproblem för mig. Vad är telnet-kommandot du arbetar med? "Extern IP" låter på samma sätt som du skulle göra på AWS. Att ställa in fjärråtkomst till en VPC tar många steg. Har du några andra tjänster öppna utåt som är igång?

    Du kan också felsöka genom att stänga av Postgres-servern och använda nc för att lyssna på 5432. Telnet sedan och se om du kan skicka data fram och tillbaka.

    1

    Paul, tack för förslagen. Jag sträckte mig och kollade versionerna. Och du hade rätt, jag försökte ansluta från AWS. Det visade sig att det var nivån jag använde i lastbalanseraren för att endast tillåta åtkomst till IP-2-intervallen för de IP-adresser som AWS publicerar. När jag inaktiverade irule kunde jag ansluta direkt. Så detta måste vara surrealistisk logik eftersom jag kontrollerade den offentliga IP-adressen för min EC2-instans och den var verkligen listad i irule via CIDR-meddelande. -

    Systemadministration

    Det här inlägget är en kort instruktion för nybörjare, för dem som installerade PostgreSQL för första gången. Här är all information du behöver för att komma igång med PostgreSQL.

    Ansluter till DBMS

    Det första du ska göra är att få tillgång till PostgreSQL, tillgång som superanvändare.
    Autentiseringsinställningar finns i filen pg_hba.conf.
    1. lokal alla postgres kamrater
    Den här raden indikerar att postgres-användaren kan ansluta till vilken lokal PostgreSQL-databas som helst via en socket. Det finns inget behov av att ange ett lösenord. Operativsystemet kommer att överföra användarnamnet, och det kommer att användas för autentisering.
    Låt oss ansluta:
    1. $ sudo -u postgres psql postgres postgres
    För att kunna ansluta via nätverket måste du lägga till linjen till pg_hdba.conf:
    1. # TYP DATABAS ANVÄNDARADRESSMETOD
    2. hostssl alla alla 0.0.0.0/0 md5
    Autentiseringsmetod md5 betyder att du måste ange ett lösenord för att ansluta. Detta är inte särskilt bekvämt om du ofta använder psql-konsolen. Om du vill automatisera något är den dåliga nyheten att psql inte accepterar ett lösenord som argument. Det finns två sätt att lösa dessa problem: ställa in lämplig miljövariabel och lagra lösenordet i en speciell .pgpass-fil.

    Ställa in miljövariabeln PGPASSWORD

    Jag ska genast säga att det är bättre att inte använda den här metoden, eftersom vissa operativsystem tillåter vanliga användare att se miljövariabler med ps. Men om du vill måste du skriva i terminalen:
    1. export PGPASSWORD=mypasswd
    Variabeln kommer att vara tillgänglig i den aktuella sessionen. Om du behöver ställa in en variabel för alla sessioner måste du lägga till raden från exemplet till filen .bashrc eller .bash_profile

    Lagra lösenordet i .pgpass-filen

    Om vi ​​pratar om Linux, då bör filen finnas i $HOME (/home/användarnamn). Endast ägaren (0600) måste ha skriv- och läsrättigheter. Du måste skriva rader så här till filen:
    1. värdnamn:port:databas:användarnamn:lösenord
    Du kan skriva "*" i de första fyra fälten, vilket innebär ingen filtrering (fullständigt urval).

    Få hjälpinformation

    \? - kommer att visa alla tillgängliga kommandon tillsammans med deras korta beskrivning,
    \h - visar en lista över alla tillgängliga frågor,
    \h CREATE - ger hjälp för en specifik förfrågan.

    DBMS användarhantering

    Hur får man en lista över PostgreSQL-användare? Eller så kan du fråga tabellen pg_user.
    1. SELECT * FROM pg_user ;

    Skapa en ny PostgreSQL-användare

    Från psql-skalet kan detta göras med kommandot CREATE.
    1. SKAPA ANVÄNDARE användarnamn MED lösenord "lösenord" ;
    Eller så kan du använda terminalen.
    1. createuser -S -D -R -P användarnamn
    Du kommer att bli ombedd att ange ett lösenord.

    Ändra användarlösenordet

    1. ALTER USER användarnamn MED LÖSENORD "lösenord" ;

    Ändra användarroller

    För att ge användaren behörighet att skapa databaser, kör följande fråga:
    1. ALTER ROLE användarnamn MED CREATEDB ;

    Databashantering

    Visar en lista över databaser i psql-terminalen: Samma från Linux-terminalen:
    1. psql -l
    Skapa en databas från psql (PostgreSQL Terminal)
    1. SKAPA DATABAS dbname ÄGARE dbadmin ;
    Skapa en ny databas med terminalen:
    1. createb -O användarnamn dbname;

    Ställa in databasåtkomsträttigheter

    Om användaren är ägaren till databasen har han alla rättigheter. Men om du vill ge åtkomst till en annan användare kan du göra detta med kommandot GRANT. Frågan nedan tillåter användaren att ansluta till databasen. Men glöm inte konfigurationsfilen pg_hba.conf den måste också ha lämpliga anslutningsbehörigheter.
    1. BILJA ANSLUT PÅ DATABAS dbname TILL dbadmin ;

    PostgreSQL är en öppen källkod, plattformsoberoende objektrelationell DBMS. I den här artikeln kommer du att lära dig hur du installerar PostgreSQL på Ubuntu Linux, ansluter till den och kör ett par enkla SQL-frågor, samt hur du ställer in säkerhetskopior.

    För att installera PostgreSQL 9.2 på Ubuntu 12.10, kör följande kommandon:

    sudo apt-add-repository ppa:pitti/postgresql
    sudo apt-get uppdatering
    sudo apt-get installera postgresql-9.2

    Låt oss försöka arbeta med DBMS genom skalet:

    sudo -u postgres psql

    Låt oss skapa en testdatabas och en testanvändare:

    CREATE DATABASE test_database;
    SKAPA ANVÄNDARE test_user MED lösenordet "qwerty" ;
    BEVISA ALLA PÅ DATABAS test_database TILL test_user;

    För att avsluta skalet, skriv in kommandot \q .

    Låt oss nu försöka arbeta med den skapade databasen på uppdrag av test_user:

    psql -h localhost test_database test_user

    Låt oss skapa en ny tabell:

    CREATE SEQUENCE user_ids;
    SKAPA TABELL-användare (
    id INTEGER PRIMARY KEY DEFAULT NEXTVAL ("user_ids") ,
    logga in CHAR(64) ,
    lösenord CHAR(64));

    Observera att, till skillnad från vissa andra DBMS:er, har PostgreSQL inte kolumner med egenskapen auto_increment. Istället använder Postgres sekvenser. För nu räcker det att veta att med nästaval-funktionen kan vi få unika nummer för en given sekvens:

    SELECT NEXTVAL ("user_ids" );

    Genom att ställa in standardvärdet för id-fältet i användartabellen till NEXTVAL("användar-id"), har vi uppnått samma effekt som auto_increment ger. När vi lägger till nya poster i tabellen kanske vi inte anger ett id, eftersom ett unikt id kommer att genereras automatiskt. Flera tabeller kan använda samma sekvens. På så sätt kan vi garantera att värdena för vissa fält i dessa tabeller inte överlappar varandra. I denna mening är sekvenser mer flexibla än auto_increment.

    Exakt samma tabell kan skapas med bara ett kommando:

    SKAPA TABELL användare2 (
    ID SERIAL PRIMÄR NYCKEL,
    logga in CHAR(64) ,
    lösenord CHAR(64));

    I det här fallet skapas sekvensen för id-fältet automatiskt.

    Med hjälp av kommandot \d kan du nu se en lista över alla tillgängliga tabeller, och med \d användare kan du se en beskrivning av användartabellen. Om du inte får den information du letar efter, försök med \d+ istället för \d . Du kan få en lista över databaser med kommandot \l och växla till en specifik databas med kommandot \c dbname. För att visa kommandohjälp, säg \? .

    Det är viktigt att notera att PostgreSQL konverterar tabell- och kolumnnamn till gemener som standard. Om du inte vill ha detta beteende kan du använda dubbla citattecken:

    CREATE TABLE "anotherTable" ("someValue" VARCHAR (64 ) );

    En annan egenskap hos PostgreSQL som kan orsaka svårigheter när man börjar arbeta med detta DBMS är de så kallade "schemana". Ett schema är något som ett namnområde för tabeller, som en katalog med tabeller i en databas.

    Skapa ett schema:

    SKAPA SCHEMA bokningar;

    Byt till schema:

    SET sökväg TILL bokningar;

    Du kan se en lista över befintliga scheman med kommandot \dn. Standardschemat heter offentligt. I princip kan du framgångsrikt använda PostgreSQL utan att veta om förekomsten av scheman. Men när man arbetar med äldre kod, och i vissa edge-fall, kan det vara mycket användbart att känna till scheman.

    Annars skiljer sig inte arbetet med PostgreSQL mycket från att arbeta med andra relationella DBMS:

    INSERT INTO användare (inloggning, lösenord)
    VÄRDEN ("afiskon", "123456" );
    VÄLJ * FRÅN användare;

    Om du nu försöker ansluta till Postgres från en annan maskin kommer du att misslyckas:

    psql -h 192.168.0.1 test_database test_user

    Psql: kunde inte ansluta till servern: Anslutningen nekades
    Körs servern på värd "192.168.0.1" och accepterar
    TCP/IP-anslutningar på port 5432?

    För att fixa detta, lägg till raden:

    listen_addresses = "localhost,192.168.0.1"

    ...till filen /etc/postgresql/9.2/main/postgresql.conf också.





    

    2024 gtavrl.ru.