Функция SECURITY DEFINER в PostgreSQL может быть опасной по нескольким причинам:
  - Некорректный доступ к объектам базы данных.                                                                          www.cybertec-postgresql.com                       Доступ к объектам без явного указания схемы может повлиять на другие объекты, чем предполагал автор функции.                                                                          www.cybertec-postgresql.com                       Это связано с тем, что в сессии с базой данных можно изменить параметр конфигурации search_path, который определяет, какие схемы искать для нахождения объекта базы данных.                                                                          www.cybertec-postgresql.com                      
  - Возможность злоумышленника выполнить произвольные SQL-команды.                                                                          bdu.fstec.ru                       Если не принять меры по защите структуры запроса SQL, эксплуатация уязвимости функции SECURITY DEFINER может позволить нарушителю, действующему удалённо, выполнить произвольные SQL-команды.                                                                          bdu.fstec.ru                      
  
 Чтобы обезопасить функцию SECURITY DEFINER, рекомендуется исключить из пути search_path любые схемы, доступные на запись недоверенным пользователям.                                                                          postgrespro.ru                       Это не позволит злонамеренным пользователям создать свои объекты (например, таблицы, функции и операторы), которые замаскируют объекты, используемые функцией.                                                                          postgrespro.ru