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 mydatabase
Probabilmente 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 postgres
E 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
postgres
utente,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
postgres
che è l'equivalente PostgreSQL diSA
di 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.