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 mydatabasePowinieneś 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 postgresA 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
postgresuż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
postgresktóry jest odpowiednikiem PostgreSQLSAserwera 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.