По моему личному мнению, дискуссии о безопасности с использованием различных технологий баз данных часто совершенно беспочвенны, и во многих случаях те, кто быстро указал пальцем на одну или другую, вероятно, не понимают, что причиной разлива данных была не из-за базы данных, но потому, что они не защитили свое приложение должным образом, но не могут признать ошибку, таким образом, возлагая вину на других. По крайней мере, до сих пор у меня были споры о безопасности, связанные с любой технологией баз данных.
Хороший пример, SQL-инъекция вообще не является ошибкой базы данных. SQL - это стандартизированный язык, принятый как MySQL, так и PostgreSQL (и Oracle, и другими ...). SQL-инъекция - это манипулирование языком структурированных запросов, а не недостаток безопасности сервера. Причиной этого является тот факт, что приложение неправильно обработало входные данные. Нельзя утверждать, что одна база данных, использующая один и тот же стандартизированный язык, менее защищена от непреднамеренного манипулирования запросами, чем другая база данных, использующая ту же технологию, поэтому тот, кто сказал вам, что SQL-инъекция - это больше проблема одной из этих двух баз данных. не понимает, что такое SQL-инъекция.
Что касается запуска PostgreSQL от имени пользователя root, вы не должны запускаться от имени пользователя root. Запуск службы на сервере от имени пользователя root всегда плохая идея, опять же, ничего не связано с серверами.
У меня очень мало опыта работы с PostgreSQL, но я скажу, что MySQL имеет выдающуюся систему разрешений, которая позволяет пользователям делегировать набор доступных команд в определенном списке баз данных на клиентских компьютерах с выбранным списком. PostgreSQL может быть сделан иначе, но я бы с трудом согласился с тем, что безопасность одного из них, когда он связан с аутентификацией и учетными записями пользователей, очень важна для другого.