Existem dois métodos que você pode usar. Ambos exigem a criação de um usuário e um banco de dados.
Por padrão, o psql se conecta ao banco de dados com o mesmo nome do usuário. Portanto, existe uma convenção para fazer com que o "banco de dados do usuário" . E não há razão para quebrar essa convenção se seu usuário precisar apenas de um banco de dados. Usaremos
mydatabase
como o nome do banco de dados de exemplo. -
Usando createuser e createdb , podemos ser explícitos sobre o nome do banco de dados,
$ sudo -u postgres createuser -s $USER $ createdb mydatabase $ psql -d mydatabase
Você provavelmente deveria estar omitindo isso completamente e deixando todos os comandos padronizados para o nome do usuário.
$ sudo -u postgres createuser -s $USER $ createdb $ psql
-
Usando os comandos de administração SQL e conectando-se com uma senha por TCP
$ sudo -u postgres psql postgres
E, em seguida, no shell do psql
CREATE ROLE myuser LOGIN PASSWORD 'mypass'; CREATE DATABASE mydatabase WITH OWNER = myuser;
Então você pode fazer o login,
$ psql -h localhost -d mydatabase -U myuser -p <port>
Se você não conhece a porta, você sempre pode obtê-la executando o seguinte, como opostgres
do utilizador,
SHOW port;
Ou,
$ grep "port =" /etc/postgresql/*/main/postgresql.conf
Nota:o postgres
usuário
Eu sugiro NÃO modificando o
postgres
do utilizador. - Normalmente, está bloqueado no sistema operacional. Ninguém deve "fazer login" no sistema operacional como
postgres
. Você deveria ter root para autenticar comopostgres
. - Normalmente, não é protegido por senha e delega ao sistema operacional do host. Isso é uma coisa boa . Isso normalmente significa fazer login como
postgres
que é o equivalente do PostgreSQL aoSA
do SQL Server , você precisa ter acesso de gravação aos arquivos de dados subjacentes. E isso significa que você normalmente pode causar estragos de qualquer maneira. - Ao manter isso desativado, você elimina o risco de um ataque de força bruta por meio de um superusuário nomeado. Ocultar e ocultar o nome do superusuário tem vantagens.