Ci sono due metodi che puoi usare. Entrambi richiedono la creazione di un utente e un database.
Per impostazione predefinita psql si connette al database con lo stesso nome dell'utente. Quindi esiste una convenzione per renderlo il "database dell'utente" . E non c'è motivo di infrangere questa convenzione se il tuo utente ha bisogno di un solo database. Useremo mydatabase come nome del database di esempio.
-
Utilizzo di createuser e createb , possiamo essere espliciti sul nome del database,
$ sudo -u postgres createuser -s $USER $ createdb mydatabase $ psql -d mydatabaseProbabilmente dovresti ometterlo del tutto e lasciare che tutti i comandi siano invece predefiniti con il nome dell'utente.
$ sudo -u postgres createuser -s $USER $ createdb $ psql -
Utilizzo dei comandi di amministrazione SQL e connessione con una password su TCP
$ sudo -u postgres psql postgresE poi nella shell di psql
CREATE ROLE myuser LOGIN PASSWORD 'mypass'; CREATE DATABASE mydatabase WITH OWNER = myuser;Quindi puoi accedere,
$ psql -h localhost -d mydatabase -U myuser -p <port>Se non conosci la porta, puoi sempre ottenerla eseguendo quanto segue, come
postgresutente,SHOW port;Oppure,
$ grep "port =" /etc/postgresql/*/main/postgresql.conf
Nota a margine:il postgres utente
Suggerisco NON modificando il postgres utente.
- Normalmente è bloccato dal sistema operativo. Nessuno dovrebbe "accedere" al sistema operativo come
postgres. Dovresti avere root per autenticarti comepostgres. - Normalmente non è protetto da password e delega al sistema operativo host. Questa è una cosa buona . Questo normalmente significa per accedere come
postgresche è l'equivalente PostgreSQL diSAdi SQL Server , devi avere accesso in scrittura ai file di dati sottostanti. E ciò significa che normalmente potresti comunque devastare il caos. - Mantenendolo disabilitato, elimini il rischio di un attacco di forza bruta attraverso un superutente nominato. Nascondere e oscurare il nome del superutente ha dei vantaggi.