Det finns två metoder du kan använda. Båda kräver att du skapar en användare och en databas.
Som standard ansluter psql till databasen med samma namn som användaren. Så det finns en konvention som gör det till "användarens databas" . Och det finns ingen anledning att bryta den konventionen om din användare bara behöver en databas. Vi kommer att använda mydatabase
som exempeldatabasnamnet.
-
Använder createuser och createdb , vi kan vara tydliga om databasnamnet,
$ sudo -u postgres createuser -s $USER $ createdb mydatabase $ psql -d mydatabase
Du borde förmodligen utelämna det helt och låta alla kommandon användas som standard till användarens namn istället.
$ sudo -u postgres createuser -s $USER $ createdb $ psql
-
Använda SQL-administrationskommandon och ansluta med ett lösenord över TCP
$ sudo -u postgres psql postgres
Och sedan i psql-skalet
CREATE ROLE myuser LOGIN PASSWORD 'mypass'; CREATE DATABASE mydatabase WITH OWNER = myuser;
Sedan kan du logga in,
$ psql -h localhost -d mydatabase -U myuser -p <port>
Om du inte känner till porten kan du alltid få den genom att köra följande, som
postgres
användare,SHOW port;
Eller,
$ grep "port =" /etc/postgresql/*/main/postgresql.conf
Sidenot:postgres
användare
Jag föreslår INTE ändra postgres
användare.
- Det är normalt låst från operativsystemet. Ingen ska "logga in" på operativsystemet som
postgres
. Du ska ha root för att kunna autentisera sompostgres
. - Det är normalt inte lösenordsskyddat och delegeras till värdoperativsystemet. Det här är en bra sak . Detta innebär normalt att logga in som
postgres
vilket är PostgreSQL-motsvarigheten till SQL ServersSA
, måste du ha skrivåtkomst till de underliggande datafilerna. Och det betyder att du normalt sett kan förstöra förödelse ändå. - Genom att hålla detta inaktiverat tar du bort risken för en brute force attack genom en namngiven superanvändare. Att dölja och dölja namnet på superanvändaren har fördelar.