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 mydatabaseDu 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 postgresOch 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
postgresanvä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
postgresvilket ä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.