Политика безопасности Oracle - PullRequest
1 голос
/ 09 октября 2011

Как создать функцию, которая ограничивает пользователей видеть только сотрудников с зарплатой 1500 или менее ??Как пример: если я введу

SQL> SELECT * FROM employee;

EMPNUMB EMPNAME STARTDATE ENDDATE  SALARY  EMPCITY   DESCRIPTION
---------------------------------------------------------------------------
01      Jason Martin 25-JUL-96 25-JUL-06 1234.56 Geelong   Programmer
08      James Cat 17-SEP-96 15-APR-02 1232.78 Melbourne Tester

1 Ответ

2 голосов
/ 09 октября 2011

Вам не нужна функция, вам нужно представление:

create view employee_view as
select * from employee where salary <= 1500;

Тогда только пользователи получают доступ к представлению, а не к таблице.При необходимости вы можете переименовать так, чтобы представление называлось employee, а базовая таблица называлась employee_table или как угодно.

В качестве альтернативы, отметив заголовок вашего вопроса, вы можете посмотреть на Virtual PrivateБаза данных (ВПД) ака "Детальный контроль доступа".Но это звучит как излишнее для ваших заявленных требований и доступно только в Enterprise Edition.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...