В настоящее время я пытаюсь настроить RLS на моей PostgreSQL БД, работающей на AWS RDS. По какой-то причине я не могу заставить его работать на Postgres DB в AWS, но локально это работает, и все кажется идентичным.
Вот мои настройки:
PostgreSQL версия: 10.6
Шаги:
SELECT * FROM pg_user;
|usename|usesysid|usecreatedb|usesuper|userepl|usebypassrls|passwd|valuntil|
|rdsadmin|10 |t| t|t| t| ******** | infinity|
|app_user|16393|t|f|f|f|********|infinity|
SELECT current_user;
> current_user
> ---------------
> app_user
CREATE TABLE rls_test (id int, name varchar(255));
INSERT INTO rls_test (1, 'test');
SELECT * FROM rls_test;
> id | name
> ----+------
> 1 | test
SELECT * FROM pg_tables where tablename='rls_test';
> schemaname | tablename | tableowner | tablespace | hasindexes | hasrules | hastriggers | rowsecurity
> ------------+-----------+------------+------------+------------+----------+-------------+-------------
> public | rls_test | app_user | | f | f | f | f
ALTER TABLE rls_test ENABLE ROW LEVEL SECURITY;
ALTER TABLE rls_test FORCE ROW LEVEL SECURITY;
SELECT * FROM pg_tables where tablename='rls_test';
> schemaname | tablename | tableowner | tablespace | hasindexes | hasrules | hastriggers | rowsecurity
> ------------+-----------+------------+------------+------------+----------+-------------+-------------
> public | rls_test | app_user | | f | f | f | t
SELECT * FROM rls_test;
> id | name
> ----+------
> 1 | test
Те же шаги на локально работающей БД Postgres работают. После включения и форсирования RLS для новой таблицы пользователь больше не видит записи в таблице. Только на Postgres, работающем на AWS RDS, это не работает.
Есть идеи, чего мне здесь не хватает?