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

    Общий рейтинг статьи: 5 (проголосовало 1 )
    Опубликовано:  [просмотров 590]


    Наверняка, нет ни одного человека связанного с миром 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;


    Обсуждение статьи

    Ваш комментарий: