Istnieją dwie metody, z których możesz skorzystać. Oba wymagają utworzenia użytkownika i bazę danych.
Domyślnie psql łączy się z bazą danych o tej samej nazwie co użytkownik. Tak więc istnieje konwencja, zgodnie z którą „baza danych użytkownika” . I nie ma powodu, aby łamać tę konwencję, jeśli użytkownik potrzebuje tylko jednej bazy danych. Będziemy używać mydatabase
jako przykładową nazwę bazy danych.
-
Korzystanie z createuser i createdb , możemy jednoznacznie określić nazwę bazy danych,
$ sudo -u postgres createuser -s $USER $ createdb mydatabase $ psql -d mydatabase
Powinieneś prawdopodobnie całkowicie to pominąć i pozwolić wszystkim poleceniom domyślnie używać nazwy użytkownika.
$ sudo -u postgres createuser -s $USER $ createdb $ psql
-
Korzystanie z poleceń administracyjnych SQL i łączenie się z hasłem przez TCP
$ sudo -u postgres psql postgres
A potem w powłoce psql
CREATE ROLE myuser LOGIN PASSWORD 'mypass'; CREATE DATABASE mydatabase WITH OWNER = myuser;
Następnie możesz się zalogować,
$ psql -h localhost -d mydatabase -U myuser -p <port>
Jeśli nie znasz portu, zawsze możesz go uzyskać, uruchamiając następujące polecenie, jako
postgres
użytkownik,SHOW port;
Lub
$ grep "port =" /etc/postgresql/*/main/postgresql.conf
Uwaga:postgres
użytkownik
Proponuję NIE modyfikowanie postgres
użytkownika.
- Zwykle jest zablokowany w systemie operacyjnym. Nikt nie powinien "logować się" do systemu operacyjnego jako
postgres
. Powinieneś mieć roota, aby uzyskać uwierzytelnienie jakopostgres
. - Zwykle nie jest chroniony hasłem i jest delegowany do systemu operacyjnego hosta. To dobra rzecz . Zwykle oznacza to, aby zalogować się jako
postgres
który jest odpowiednikiem PostgreSQLSA
serwera SQL Server , musisz mieć dostęp do zapisu do bazowych plików danych. A to oznacza, że i tak normalnie mógłbyś siać spustoszenie. - Wyłączając to ustawienie, eliminujesz ryzyko ataku brute force przez nazwanego superużytkownika. Ukrywanie i ukrywanie imienia superużytkownika ma swoje zalety.