Введение в язык SQL запросов к базам данных. Баканов В.М. - 47 стр.

UptoLike

Составители: 

- 47 -
GRANT SELECT
ON EMPS
TO PUBLIC; --- PUBLIC значитДЛЯ ВСЕХ
Еще одна возможность SQL - он позволяет создавать виды, возвра-
щающие разные результаты разным пользователям ! Создадим вид таблицы
EMP, возвращающий данные только о тех пользователях, номера отдела ко-
торых совпадают с номером отдела персоны, использующей данный вид:
CREATE VIEW MYEMPS AS
SELECT *
FROM EMP
WHERE DEPTNO IN
(SELECT DEPTNO
FROM EMP
WHERE ENAME = USER);
Ключевое слово USER (используемое в конструкции
WHERE ENAME=USER) возвращает имя текущего вошедшего в систему
пользователя. Если это JONES, работающий в отделе 10, то он имеет доступ к
виду MYEMPS, где перечислены только работники отдела 10. Если это
BLAKE (из отдела 30), то он увидит только работников отдела 30. Другими
словами, вид становится чувствительным к тем, кто
его использует.
Несложно гарантировать доступ и привилегии обновления к виду
MYEMPS для всех трех менеджеров отделов для разрешения им читать и из-
менять любые данные о работниках только их отделов:
GRANT SELECT,UPDATE
ON MYEMPS
ТО JONES, BLAKE, CLARK;
Таким образом, если работник переведен в другой отдел (то есть значе-
ние в поле DEPTNO изменилось), новый менеджер автоматически получа-
ет доступ к сведениям по окладу данного работника, а старый менеджер от-
дела автоматически теряет к нему доступ. Сочетание возможностей VIEW и
GRANT, а также ключевого слова USER, дает
поддерживающим SQL сис-
темам способность осуществлять защиту, чувствительную к содержимому
БД.
Команда REVOKE
После предоставления привилегии всегда можно ее отменить при помо-
щи команды REVOKE.
                                     - 47 -



  GRANT SELECT
  ON EMPS
  TO PUBLIC; --- PUBLIC значит ‘ДЛЯ ВСЕХ’

     Еще одна возможность SQL - он позволяет создавать виды, возвра-
щающие разные результаты разным пользователям ! Создадим вид таблицы
EMP, возвращающий данные только о тех пользователях, номера отдела ко-
торых совпадают с номером отдела персоны, использующей данный вид:

  CREATE VIEW MYEMPS AS
  SELECT *
  FROM EMP
  WHERE DEPTNO IN
           (SELECT DEPTNO
            FROM EMP
            WHERE ENAME = USER);

    Ключевое      слово     USER     (используемое       в    конструкции
WHERE ENAME=USER) возвращает имя текущего вошедшего в систему
пользователя. Если это JONES, работающий в отделе 10, то он имеет доступ к
виду MYEMPS, где перечислены только работники отдела 10. Если это
BLAKE (из отдела 30), то он увидит только работников отдела 30. Другими
словами, вид становится чувствительным к тем, кто его использует.
    Несложно гарантировать доступ и привилегии обновления к виду
MYEMPS для всех трех менеджеров отделов для разрешения им читать и из-
менять любые данные о работниках только их отделов:

  GRANT SELECT,UPDATE
  ON MYEMPS
  ТО JONES, BLAKE, CLARK;

     Таким образом, если работник переведен в другой отдел (то есть значе-
ние в поле DEPTNO изменилось), новый менеджер автоматически получа-
ет доступ к сведениям по окладу данного работника, а старый менеджер от-
дела автоматически теряет к нему доступ. Сочетание возможностей VIEW и
GRANT, а также ключевого слова USER, дает поддерживающим SQL сис-
темам способность осуществлять защиту, чувствительную к содержимому
БД.

Команда REVOKE

    После предоставления привилегии всегда можно ее отменить при помо-
щи команды REVOKE.