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.
-
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
-
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.
- 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 alspostgres
. - 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'sSA
, moet u schrijftoegang hebben tot de onderliggende gegevensbestanden. En dat betekent dat je normaal gesproken sowieso een ravage kunt aanrichten. - 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.