Типовые задачи администрирования Postgresql

HELP-ME-24.COM (Freelance Team), Черноусов Антон

Наверняка, нет ни одного человека связанного с миром IT который не слышал бы о популярной реляционной СУБД PostgreSQL, но у многих начинающих системных администраторов и web-разработчиков существует мнение, что это сложная СУБД и им проще использовать привычный им MySQL или MariaDB. На самом деле администрирование Postgresql на базовом уровне нисколько не сложнее администрирования MySQL и других СУБД.

Мы в своей работе давно предпочитаем использовать именно Postgresql и подготовили небольшую "памятку" по типовым операциям которые должен знать любой администратор или web-разработчик.

Ниже представлены типовые операции с базами данных и команды которые требуются для выполнения этих операций.

Получить список всех баз данных:

# \l

Переключить "текущую базу данных":

# \connect round_cube_database

Получить список всех таблиц базы данных:

# \d

Создать пользователя:

# CREATE USER xxxDatabaseName WITH password 'xxxXXXxxx';

* В последних версиях Postgresql операция CREATE USER это алиас к команде CREATE ROLE

Сменить пароль пользователя:

# ALTER ROLE postgres WITH PASSWORD 'z3yqWstERggzsHLP';

Создать базу данных (кодировка UTF-8 LC RU):

# CREATE DATABASE round-cubedb ENCODING 'UTF-8' LC_COLLATE 'ru_RU.UTF-8' LC_CTYPE 'ru_RU.UTF-8';

Сменить владельца базы данных:

# ALTER DATABASE round_cube_database OWNER TO roundcude;

Сменить владельца всех таблиц базы данных:

1. Первый и самый простой способ, это переназначить владельца:

# REASSIGN OWNED BY old_user TO new_user;

Этот метод не работает если требуется сменить владельца с postgres, вызывает ошибку (ERROR:  cannot reassign ownership of objects owned by role postgres because they are required by the database system).

2. Можно принудительно установить владельца на все объекты базы данных используя скрипт от [Raghav] (https://github.com/trrao/PostgreSQL_Scripts/blob/master/change_ownership.sh)

Получить список пользователей (ролей):

# \dg

Разрешить доступ на чтение к объекту базы данных для пользователя не являющегося его владельцем:

# GRANT SELECT ON tabe_with_users TO postgresq_user;

Оставьте комментарий

Вы должны быть вошедший в чтобы отправить комментарий