Главная
Главная Руководства PostgreSQL › PostgreSQL шпаргалка



Автор:

Статья опубликована: 2023-08-28 22:32:25
Последние правки: 2023-08-28 23:49:18

PostgreSQL - как создать базу, как создать пользователя и т.д...

  • Прежде всего, необходимо зайти под пользователем 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)