Има два метода, които можете да използвате. И двете изискват създаване на потребители база данни.
По подразбиране psql се свързва към базата данни със същото име като потребителя. Така че има конвенция да се направи това "потребителска база данни" . И няма причина да нарушавате тази конвенция, ако потребителят ви се нуждае само от една база данни. Ще използваме mydatabase
като примерно име на база данни.
-
Използване на createuser и createdb , можем да бъдем изрични за името на базата данни,
$ sudo -u postgres createuser -s $USER $ createdb mydatabase $ psql -d mydatabase
Вероятно трябва да пропуснете това изцяло и вместо това да оставите всички команди по подразбиране на името на потребителя.
$ sudo -u postgres createuser -s $USER $ createdb $ psql
-
Използване на командите за администриране на SQL и свързване с парола през TCP
$ sudo -u postgres psql postgres
И след това в psql обвивката
CREATE ROLE myuser LOGIN PASSWORD 'mypass'; CREATE DATABASE mydatabase WITH OWNER = myuser;
След това можете да влезете,
$ psql -h localhost -d mydatabase -U myuser -p <port>
Ако не знаете порта, винаги можете да го получите, като изпълните следното, като
postgres
потребител,SHOW port;
Или,
$ grep "port =" /etc/postgresql/*/main/postgresql.conf
Странична бележка:postgres
потребител
Предлагам НЕ промяна на postgres
потребител.
- Обикновено е заключен от ОС. Никой не трябва да "влиза" в операционната система като
postgres
. Предполага се, че имате root, за да стигнете до удостоверяване катоpostgres
. - Обикновено не е защитена с парола и се делегира на операционната система на хоста. Това е добро нещо . Това обикновено означава да влезете като
postgres
което е PostgreSQL еквивалент наSA
на SQL Server , трябва да имате достъп за запис до основните файлове с данни. И това означава, че нормално бихте могли да разрушите хаос така или иначе. - Като запазите това деактивирано, премахвате риска от атака с груба сила чрез посочен суперпотребител. Скриването и скриването на името на суперпотребителя има предимства.