В прошлом я реализовывал защиту на уровне строк в базах данных Oracle и SQL Server, используя политики безопасности и функции предикатов.
Теперь моя организация переходит на Amazon Redshift в качестве хранилища данных и ищет информацию о способах реализации RLS в Redshift для необработанного доступа sql пользователями.
Пример:
Таблица A содержит данные для многих регионов.
Столбцы «РЕГИОН» в таблице содержат регион, которому соответствует строка.
В таблице user_setup каждый пользователь имеет список регионов, к которым пользователь должен иметь доступ.
Таблица A:
регион с идентификатором баланса
1 100 AUS
2 120 IND
3 50 EUR
таблица user_setup:
регион пользователя
Usr1 AUS
Usr2 AUS
2 евро
ожидаемый результат:
если выполняется Usr1, выберите * из A;
Вывод должен быть:
регион с идентификатором баланса
1 100 AUS
если Usr2 выполняет select * from A;
Вывод должен быть:
Идентификатор счета региона баланса
1 100 AUS
3 50 EUR
, если Usr3 выполняет select * from A;
Вывод должен быть:
Строки не возвращаются.