sql >> Database >  >> RDS >> PostgreSQL

Hoe log ik in en authenticeer ik bij Postgresql na een nieuwe installatie?

Er zijn twee methoden die u kunt gebruiken. Voor beide is het maken van een gebruiker en . vereist een database.

Standaard maakt psql verbinding met de database met dezelfde naam als de gebruiker. Er is dus een conventie om te maken dat de "gebruikersdatabase" . En er is geen reden om die conventie te doorbreken als uw gebruiker slechts één database nodig heeft. We gebruiken mydatabase als voorbeelddatabasenaam.

  1. Createuser en createdb gebruiken , we kunnen expliciet zijn over de databasenaam,

    $ sudo -u postgres createuser -s $USER
    $ createdb mydatabase
    $ psql -d mydatabase
    

    Je zou dat waarschijnlijk helemaal moeten weglaten en in plaats daarvan alle commando's standaard naar de gebruikersnaam moeten laten gaan.

    $ sudo -u postgres createuser -s $USER
    $ createdb
    $ psql
    
  2. De SQL-beheeropdrachten gebruiken en verbinding maken met een wachtwoord via TCP

    $ sudo -u postgres psql postgres
    

    En dan in de psql-shell

    CREATE ROLE myuser LOGIN PASSWORD 'mypass';
    CREATE DATABASE mydatabase WITH OWNER = myuser;
    

    Dan kunt u inloggen,

    $ psql -h localhost -d mydatabase -U myuser -p <port>
    

    Als u de poort niet kent, kunt u deze altijd verkrijgen door het volgende uit te voeren, als de postgres gebruiker,

    SHOW port;
    

    Of,

    $ grep "port =" /etc/postgresql/*/main/postgresql.conf
    

Sidenote:de postgres gebruiker

Ik stel voor NIET het wijzigen van de postgres gebruiker.

  1. Het is normaal gesproken vergrendeld vanuit het besturingssysteem. Niemand wordt verondersteld zich aan te melden bij het besturingssysteem als postgres . Je wordt verondersteld root te hebben om te authenticeren als postgres .
  2. Het is normaal gesproken niet beveiligd met een wachtwoord en wordt gedelegeerd aan het hostbesturingssysteem. Dit is een goede zaak . Dit betekent normaal gesproken om in te loggen als postgres wat het PostgreSQL-equivalent is van SQL Server's SA , moet u schrijftoegang hebben tot de onderliggende gegevensbestanden. En dat betekent dat je normaal gesproken sowieso een ravage kunt aanrichten.
  3. Door dit uitgeschakeld te houden, verwijdert u het risico van een brute force-aanval via een benoemde supergebruiker. Het verbergen en verduisteren van de naam van de supergebruiker heeft voordelen.


  1. Tekortkomingen van mysql_real_escape_string?

  2. Verbindingstime-out voor DriverManager getConnection

  3. JSON_QUERY() versus JSON_VALUE() in SQL Server:wat is het verschil?

  4. Kan 'alleen-lezen' database niet verkleinen | Transactielogboek verkleinen bij gebruik van AlwaysOn-beschikbaarheidsgroep