- Прежде всего, необходимо зайти под пользователем postgres, иначе вы получите ошибку, навроде этой: "psql: FATAL: role "root" does not exist".
# sudo -i -u postgres
выход: команда exit
Начнем с создания БД: для этого есть отдельная утилита. Создадим БД с названием testdatabase:# createdb testdatabase
Удаление БД testdatabase:# dropdb testdatabase
Пользователи. Создаем нового:# createuser testuser
Удаляем пользователя, если уже надоел:# dropuser testuser
База данных и пользователь созданы, подключаемся к серверу под root:# psql psql (14.9 (Ubuntu 14.9-0ubuntu0.22.04.1)) Type "help" for help.
Выход из клиента:postgres=# \q
Из клиента под root:
- задаем пароль пользователю testuser
postgres# alter user testuser with encrypted password 'STRONG_PASSWORD'; ALTER ROLE- даем все права пользователю testuser на базу testdatabase:
postgres# GRANT ALL PRIVILEGES ON DATABASE "testdatabase" to testuser; GRANT- соединяемся с базой, даем права на таблицы в схеме public:
posrgres# \c testdatabase testdatabase# GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO "testuser"; GRANT- выходим
postgres# \q
# psql -U testuser -d testdatabase -h 127.0.0.1 Password for user testuser: psql (14.9 (Ubuntu 14.9-0ubuntu0.22.04.1)) SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off) Type "help" for help. testdatabase=>выходим
testdatabase=> \q
Посмотреть список баз данных:
postgres# \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges ---------------+----------+----------+---------+---------+----------------------- testdatabase | postgres | UTF8 | C.UTF-8 | C.UTF-8 | =Tc/postgres + | | | | | postgres=CTc/postgres+ | | | | | testuser=CTc/postgres postgres | postgres | UTF8 | C.UTF-8 | C.UTF-8 | template0 | postgres | UTF8 | C.UTF-8 | C.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres | UTF8 | C.UTF-8 | C.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres (4 rows)
Посмотреть список схем:
testdatabase# \dn List of schemas Name | Owner --------+---------- public | postgres (1 row)