Мне дали админить БД. Она содержит персональные данные. Поэтому будут таблицы, которые доступны для всех, а какие-то приватные.
На этом фоне возник вопрос, что лучше выбрать схемы или просто использовать роли?
DDL и DML с таблицами только будут делать я и мой коллега. Все остальные будут select-щиками.
Как я понимаю, то легче сделать роль с привилегию только на чтение определенных таблиц/полей и хранить все так же в схеме public (при этом в схеме public отключить привилегию на создание объектов), чем создавать схемы и дублировать туда таблицы, а потом ещё в эту схему закидывать пользователей?
Можно создать представления view, и дать права только на эти представления не содержащие пд
Ролей бд наподобие db_datareader еще не изобрели в пг?
Таких нет. Только роль создавать и давать соответствующую роль. https://dba.stackexchange.com/questions/209739/what-is-the-equivalent-of-sql-servers-db-datareader-db-datawriter-in-postgresql
Гугли row level security в Постгресе - можно создать ещё один уровень защиты помимо ролевой модели Ну и во все стандартные поставки входит расширение pgcrypto, можно выкрутить паранойю на максимум и навесить ещё криптографию
Обсуждают сегодня