Два неравноправных отдела
Рассмотрим БД организации, имеющей в своем составе 2 отдела, каждый из которых имеет свои таблицы. Сотрудники каждого из этих отделов имеют полный доступ к таблицам своего отдела. Кроме того, сотрудники отдела №1 имеют право читать таблицы отдела №2.
Для каждого отдела создается роль, которой назначается привилегия All
(полный доступ) на таблицы, с которыми необходимо работать в данном отделе.
CREATE ROLE Sect_N1; GRANT ALL ON Table1_Sect_N1 TO Sect_N1; GRANT ALL ON Table2_Sect_N1 TO Sect_N1; GRANT ALL ON Table3_Sect_N1 TO Sect_N1; CREATE ROLE Sect_N2; GRANT ALL ON Table1_Sect_N2 TO Sect_N2; GRANT ALL ON Table2_Sect_N2 TO Sect_N2; GRANT ALL ON Table3_Sect_N2 TO Sect_N2;
Затем для роли отдела №1 добавляется возможность чтения таблиц отдела №2.
GRANT SELECT ON Table1_Sect_N2 TO Sect_N1; GRANT SELECT ON Table2_Sect_N2 TO Sect_N1; GRANT SELECT ON Table3_Sect_N2 TO Sect_N1;
Далее каждому пользователю назначается роль в зависимости от отдела, в котором он работает.
Владельцем всех таблиц является администратор. Только он может создавать новые таблицы и вводить новых пользователей.