Postgres Professional
2.46K subscribers
639 photos
41 videos
354 links
🔹 Развиваем Postgres Pro — самую популярную российскую СУБД!*

🔹 Занимаем 1 место в России и 2 в мире по вкладу в PostgreSQL*

🔹 Организуем PGConf.Russia, выпускаем курсы и книги

*подробнее: postgrespro.ru/blog/news/5970919
加入频道
Please open Telegram to view this post
VIEW IN TELEGRAM
🎄Предновогодний интерактив на знание PostgreSQL

В любой поддерживаемой версии PostgreSQL, в сеансе суперпользователя выполним команды:
CREATE ROLE app_owner; -- создаем владельца объектов приложения
CREATE TABLE t (
id int PRIMARY KEY,
parent_id int REFERENCES t(id)
);
ALTER TABLE t OWNER TO app_owner;
REVOKE ALL ON t FROM app_owner; -- никаких действий под владельцем
INSERT INTO t VALUES (1,NULL);
DELETE FROM t;
DROP TABLE t;
Других сеансов нет, синтаксис правильный.


В следующем посте будет опрос. Отметьте в нем команды, которые завершатся ошибкой.
Отметьте команды, которые завершаются ошибкой. Позже опубликуем ответы с пояснением.
Anonymous Poll
1%
CREATE ROLE
4%
CREATE TABLE
4%
ALTER TABLE
13%
REVOKE
20%
INSERT
35%
DELETE
8%
DROP TABLE
46%
Все команды выполняются успешно
Как это работает: внешние ключи

Наверное многие уже знают правильный ответ. В конце концов, указанные команды несложно повторить и увидеть, что единственная команда, которая завершится ошибкой это DELETE:
DELETE FROM t;
ERROR: permission denied for table t
CONTEXT: SQL statement "SELECT 1 FROM ONLY "public"."t" x WHERE "id" OPERATOR(pg_catalog.=) $1 FOR KEY SHARE OF x"

Но как удаление только что добавленной строки может завершиться ошибкой? Почему у суперпользователя не хватает прав на таблицу t? И откуда взялась команда SELECT из контекста?

Все дело в ограничении внешнего ключа в таблице t: столбец parent_id ссылается на id этой же таблицы. Для реализации внешних ключей в PostgreSQL используются табличные триггеры. Их называют системными. Это триггеры на языке C, они создаются автоматически, команды psql их не показывают. Но их можно найти в системном каталоге pg_trigger, например в таблице t их сейчас 4. При удалении сработал триггер на DELETE. В триггере проверялось, что на удаляемую строку другие строки не ссылаются.

Так вот оказывается, что системные триггеры выполняются с правами владельца таблицы, а не с правами вызывающего команду DELETE. После выполнения REVOKE, прав на таблицу у app_owner нет. Поэтому любые пользователи будут получать подобные ошибки. Но если права вернуть, то всё заработает:
GRANT ALL ON t TO app_owner;
DELETE FROM t WHERE id = 1;
DELETE 1

Подобное поведение будет неожиданным для пришедших из других СУБД, где забирать у владельцев права на объекты вполне допустимо.

Но неожиданности в реализации системных триггеров на этом не заканчиваются. В недавней статье Broken foreign keys: how can that happen in PostgreSQL? Лауренц Альбе дает хорошее введение в системные триггеры и рассказывает как сломать ограничение внешнего ключа "законными" действиями.

Общий вывод: чтобы не нарушить согласованность данных, нужно учитывать работу системных триггеров. Это особенно важно при разработке собственных табличных триггеров.
This media is not supported in your browser
VIEW IN TELEGRAM
🎄 Этот год был ярким и насыщенным, спасибо за то, что провели его с нами! Поздравляем вас с наступающим 2024 годом, пусть он принесёт только самое хорошее!

🎁 А в качестве небольшого подарка — наш традиционный календарь «Postgres Pro в авангарде» на 2024 год!

До встречи!
📍Открыта регистрация на конкурс «СУБД Postgres Pro»

Приглашаем студентов и выпускников вузов и колледжей от 18 до 27 лет принять участие в нашем конкурсе на олимпиаде «IT⁠-⁠Планета 2024»:

✔️Первый этап — дистанционное тестирование на знание основ теории баз данных и основ языка SQL;

✔️Второй этап — дистанционное решение логических и практических задач, разработка нестандартных SQL-запросов;

✔️Финал — состязание в очном формате среди тех, кто прошел два отборочных этапа конкурса.

🔥Победители и призеры получат подарки от Postgres Professional: мерч, ваучер на бесплатное прохождение сертификации «Администратор PostgreSQL.Профессионал» и многое другое!

Читайте подробности и регистрируйтесь
Миграция на СУБД Postgres Pro: большой семинар Postgres Professional

13 февраля проведем PGMeetup, где выступят специалисты Postgres Professional, «Айбим», «Конвертум»:

✔️Расскажем про инструменты и технологии миграции, представим решения для упрощения этого процесса в Postgres Pro Enterprise 16;

✔️Представим кейс миграции НСИ Строительного Комплекса Московской Государственной Экспертизы с Oracle на Postgres Pro;

✔️Обсудим архитектуру максимальной доступности в СУБД Postgres Pro Enterprise.

🔥Семинар будет интересен разработчикам и администраторам, а также техническим архитекторам.

📍Митап пройдет в «Рэдиссон Славянская», для очного участия дождитесь подтверждения на почту после регистрации. Также доступна онлайн-трансляция. Участие — бесплатное, по итогам встречи отправим запись.

Регистрация на PGMeetup
📍Postgresso #12 (61) — главные события мира PostgreSQL за декабрь

Декабрьский Postgresso начинается с нашей главной новости: вышел Postgres Pro Enterprise 16.1.1. Также в выпуске:

✔️Обсудили задачи для соискателей крупных IT-компаний от HR-службы Google и не только;

✔️Рассмотрели молодые языки программирования и судьбу «старичков»: COBOL и Postgres для s390;

✔️Рассказали историю, как заработать (или не заработать) на поиске уязвимостей в защищенной ОС.

Читайте выпуск
Встреча с экспертами по PostgreSQL в Санкт-Петербурге

8 февраля в Санкт-Петербурге пройдет PGMeetup.СПб/24, где выступят специалисты Postgres Professional и Selectel:

✔️Эксперты Selectel представят результаты тестирования производительности ванильного постгреса и Postgres Pro Enterprise 16 на платформах Intel, AMD, ARM, обсудят методику тестов;

✔️Ведущий разработчик Postgres Professional Максим Орлов расскажет про особенности 64-битного счётчика транзакций в PostgreSQL.

Митап будет интересен для всех IT-специалистов, кто интересуется Postgres или работает с этой СУБД.

📍Встреча пройдет очно в дата-центре Selectel, также будет онлайн-трансляция. Участие — бесплатное.

Регистрируйтесь на PGMeetup.СПб/24
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥PGConf.Russia 2024 — открываем регистрацию и принимаем доклады

8-9 апреля в «Рэдиссон Славянская» пройдет PGConf.Russia 2024 — самая масштабная конференция по PostgreSQL в России:

✔️900+ разработчиков, администраторов баз данных и IT-менеджеров;

✔️Интересные кейсы по эксплуатации СУБД, мониторингу и настройке PostgreSQL, миграции на Postgres;

✔️Профессиональная сертификация по PostgreSQL (по предварительной записи).

Открываем прием заявок на доклады — регистрируйтесь и предлагайте тему до 10 марта.

📍Early Bird — со скидкой в 30% от финальной стоимости. Участие студентов и преподавателей — бесплатное.

Регистрируйтесь на PGConf.Russia 2024
📍Postgresso — итоговый выпуск за 2023 год

Выпустили подборку из Postgresso за 2023 год: собрали сюжеты, которые тянулись от первых номеров к предновогодним. Специалист образовательного отдела Postgres Professional Игорь Левшин подобрал в дайджесте интересные темы за год, чтобы каждый нашел что-то для себя. 

Читайте Postgresso за 2023 год
📍PGMeetup: Новые возможности СУБД Postgres Pro Enterprise 16

30 января на онлайн-встрече расскажем о функциях, решениях и доработках Postgres Pro Enterprise 16 — самого значимого релиза Postgres Pro за последние несколько лет. Также на PGMeetup:

✔️Обсудим новые возможности СУБД для упрощения миграции с Oracle;

✔️Поговорим о снятии ограничений для работы с неструктурированными данными;

✔️Представим графическую консоль управления базами данных, встроенную отказоустойчивость, адаптивную оптимизацию запросов.

Участие — бесплатное, все зарегистрированные участники получат запись встречи.

Регистрируйтесь на PGMeetup
📍Использование On-Logon триггеров в СУБД Postgres Pro Enterprise

Ведущий технический консультант Postgres Professional Игорь Мельников рассказал про работу с On-Logon триггерами в новой статье на Хабре

Функциональность PostgreSQL, аналогичная тому, что предоставляет Oracle On Logon Trigger, первоначально появилась в Postgres Pro Enterprise версии 14. Компания Postgres Professional передала свою реализацию этой технологии сообществу PostgreSQL — она войдет в open source релиз PostgreSQL 17.  

Триггеры On-Logon хорошо знакомы разработчикам приложений для СУБД Oracle Database, они являются одним из видов триггеров событий базы данных и автоматически срабатывают при подключении пользователя к БД.

Читайте статью
🔥Сертификация по PostgreSQL на PGConf.Russia 2024

8-9 апреля на PGConf.Russia 2024 проведем сертификацию «Администрирование PostgreSQL» по PostgreSQL версий 10 (DBA2, DBA3, QPT) и 13 (DBA1, DBA2, DBA3, QPT, Expert 10 → 13).

Сертификация позволяет:

✔️Подтвердить свой уровень знаний;

✔️Получить преимущества при поиске работы;

✔️Узнать свою зону роста и темы, которые стоит изучить.

Обладатели уровня «Эксперт» по PostgreSQL 10 смогут сдать переходный тест «Эксперт 10 → 13» и получить сертификат «Администратор PostgreSQL 13. Эксперт» по упрощённой системе.

📍Конференция пройдет в «Рэдиссон Славянская» + в онлайн-формате, открыта ранняя регистрация. Пройти сертификацию можно по предварительной записи.

Регистрация на PGConf.Russia 2024
🔥Новая книга от Postgres Professional — «Мониторинг PostgreSQL»!

Издание про внутреннее устройство PostgreSQL и особенности мониторинга поможет эффективно использовать СУБД и решать задачи, возникающие при работе с системой.

✔️Материалы об инструментарии СУБД PostgreSQL, практические приемы его использования и способы интерпретации полученных данных.

✔️9 глав: обзор статистики, статистика активности, выполнение запросов и функций, базы данных, область общей памяти и ввод-вывод, журнал упреждающей записи, репликация, очистка, ход выполнения операций.

✔️Для администраторов баз данных, системных администраторов, специалистов по надежности.

📍Автор — Алексей Лесовский, ведущий разработчик ПО Postgres Professional. Почти 20 лет Алексей занимается задачами эксплуатации сложных систем, проектирования и разработки ПО.

👉Скачать книгу
Календарь мероприятий Postgres Professional

✔️PGMeetup: Новые возможности Postgres Pro Enterprise 16 | 30 января | Бесплатно | Онлайн

В онлайн-формате расскажем о функциях, решениях и доработках Postgres Pro Enterprise 16 — самого значимого релиза Postgres Pro за последние несколько лет. Почитать о новинках можно вот тут.

✔️PGMeetup.СПб/24 | 8 февраля | Бесплатно | Онлайн и очно

В Санкт-Петербурге специалисты Postgres Professional и Selectel в дата-центре компании обсудят производительность PostgreSQL и Postgres Pro Enterprise 16, ускорение железа и консистентность в СУБД. Встречу также будем транслировать онлайн.

✔️PGMeetup. Миграция на СУБД Postgres Pro | 13 февраля | Бесплатно | Онлайн и очно

Встретимся в «Рэддисон Славянская»: специалисты Postgres Professional обсудят миграцию на Postgres Pro, эксперты «Айбим» представят кейс миграции.

🔥 PGConf.Russia 2024 | 8-9 апреля | Онлайн и очно | Early-bird билеты!

В «Рэддисон Славянская» пройдет самая масштабная конференция по PostgreSQL в России. Соберем на одной площадке разработчиков, администраторов баз данных и IT-менеджеров; эксперты представят доклады и кейсы по эксплуатации СУБД. Открыта регистрация и прием заявок на доклады.

До встречи!
This media is not supported in your browser
VIEW IN TELEGRAM
📍Что такое Postgres Pro Enterprise Manager?

Недавно мы представили Postgres Pro Enterprise Manager (PPEM) — графическую платформу управления базой данных.

PPEM охватывает полный спектр задач администратора баз данных и значительно упрощает и ускоряет работу над рутинными задачами. Платформу уже протестировали более 25 крупнейших клиентов Postgres Professional, а теперь она доступна всем пользователем линейки СУБД Postgres Pro.

Подробнее о решении рассказал старший технический консультант Postgres Professional Борис Пищик.

🔥Узнать больше о PPEM
📍Подборка статей по работе с PostgreSQL: NULL-значения, темпоральные типы данных, механизм TOAST и работа с аномалиями 

Делимся новой подборкой статей с нашего блога на Хабре, изучаем NULL-значения, темпоральные типы данных и механизм TOAST; учимся работать с аномалиями под нагрузкой. 

✔️NULL-значения в PostgreSQL: правила и исключения

Ведущий инженер Postgres Professional Алексей Борщев разбирает поведение NULL-значений в PostgreSQL. Неопределённые значения преподносят сюрпризы — подробнее о них и особенностях решений нестандартных ситуаций читайте в статье. 

✔️Жарим TOAST в PostgreSQL

Старший разработчик ПО Postgres Professional Никита Малахов рассматривает, как PostgreSQL хранит большие (длинные) значения колонок, анализирует некоторые связанные с этим особенности и проблемы СУБД и предлагает способы решения этих проблем. 

✔️Аномалии под нагрузкой в PostgreSQL: о чём стоит помнить и с чем надо бороться

Руководитель группы производительности Postgres Professional Михаил Жилин рассказывает про аномальные случаи высокой нагрузки в СУБД PostgreSQL. При определённых профилях нагрузки СУБД может вести себя не так, как ожидается — это и есть аномалии. Материал основан на опыте работы Postgres Professional, читайте об инструментах диагностики аномалий, вносимых изменениях, результатах и рекомендациях. 

✔️Темпоральные типы в PostgreSQL и их использование

Ведущий инженер Postgres Professional Иван Фролков рассматривает особенности работы с темпоральными типами данных в PostgreSQL, которые используются при работе с датами и временем. 

Больше статей —
в блоге на Хабре
📍Как в СУБД реализовать администратора без прав доступа к данным?

Забрать у суперпользователя доступ к данным, но сохранить опции по управлению СУБД — такой запрос есть как у компаний с жесткими требованиями к информационной безопасности, так и у бизнеса с государственным регулированием. Такая функциональность закрывает риски с доверием к DBA, а также страхует в случаях «угона» учётной записи. 

В статье на Хабре изучили подходы к проблеме, существующие реализации такого типа суперпользователя и рассказали про «Администратора без доступа к данным» от Postgres Professional.

Авторы статьи — сотрудники Postgres Professional: старший технический менеджер продукта Василий Бернштейн; старший инженер по информационной безопасности Владимир Абрамов; руководитель отдела информационной безопасности Валерий Попов. 

Статья на Хабре