Здравствуйте! Имеется небольшой сайт, для бд используется PostgreSQL 9.6. Появилась необходимость реализовать авторизацию, через роли в PostgreSQL, по максимуму используя только штатные инструменты. Придумано и реализованно, что роль и пароль в PG - это же и логин и пароль на сайте, групповая роль назначенная одиночной роли - это же группа пользователя на сайте (условно Admin, Operator, User, Guest), каждая, разумеется, со своими привелегиями как в pg, так на и сайте. Комментарий к одиночной роле - это отображаемый юзернейм или ФИО пользователя, комментарий для групповой роли - это отображаемое название группы пользователей.
Было сделанно представление, которое склеивает вместе login, user_name и user_group.
SELECT a.rolname AS login,
t1.description AS name,
t2.description AS "group"
FROM pg_shdescription t1
JOIN pg_auth_members m ON t1.objoid = m.member
JOIN pg_shdescription t2 ON m.roleid = t2.objoid
JOIN pg_authid a ON t1.objoid = a.oid;
Вопросы к знатокам: насколько оптимально такое решение? Будет ли какая-то повышенная нагрузка? Если да, то как можно оптимизировать? И надо ли?