Помощь в написании студенческих работ
Антистрессовый сервис

Дополнительная защита. 
Организация баз данных

РефератПомощь в написанииУзнать стоимостьмоей работы

В следующем примере используется фраза with check option при создании представления с тем, чтобы другой пользователь Oracle не смог вносить изменения в данные посредством представления, если эти строки затем не будут снова видны в представлении. Как показано в предыдущем примере, можно все еще обновлять другие столбцы посредством представления, но нельзя вносить какие-либо изменения в строки… Читать ещё >

Дополнительная защита. Организация баз данных (реферат, курсовая, диплом, контрольная)

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

Посредством простого представления можно вносить изменения в данные. Однако могут быть внесены такие изменения, которые нельзя будет снова увидеть посредством представления (после того как изменения внесены, строки не удовлетворяют фразе where основного запроса для представления). Фраза with check option в конце оператора create view гарантирует, что изменения, внесенные посредством представления, будут все еще видны в этом представлении.

В следующем примере показано представление, созданное для того, чтобы скрыть некоторые столбцы и строки таблицы командированных сотрудников. Фраза with check option не была указана, и строки не могут быть обновлены, и они не будут видны посредством этого представления.

SQL> 1.

  • 1 CREATE OR REPLACE VIEW male_delegates
  • 2 AS SELECT djastname, d_firstname, d_sex
  • 3 FROM delegates
  • 4* WHERE d_sex ='M'

SQL> /.

View created.

SQL> GRANT SELECT, UPDATE ON male_delegates TO taejen;

Grant succeeded.

SQL> CONNECT taejen/taejen Connected.

SQL> SELECT * FROM ascend. male_delegates ;

D LASTNAMF, D FIRSTNAME D SEX.

Brooks Michael M.

Grinder John M.

Connor Joseph M.

Robbins Anthony M.

Singh Taejen M.

SQL> UPDATEascend. rnale_deIegates SETd_sex = 'F';

5 rows updated.

SQL> select* from ascend. male delegates;

no rows selected.

SQL>

В предыдущем примере был ограничен доступ к таблице и пользователю разрешено делать запрос только к некоторым столбцам и строкам в рассматриваемой таблице командированных сотрудников. Путем предоставления привилегий SELECT и update на представление другому пользователю Oracle (TAEJEN) был предписан более жесткий уровень защиты. Однако строки могут быть обновлены (установка значения 'f' в столбце d_sex) так, что они затем могут быть не доступны посредством представления. В приведенном выше примере кода можно создать синоним к представлению, чтобы избежать жесткого кодирования владельца представления.

В следующем примере используется фраза with check option при создании представления с тем, чтобы другой пользователь Oracle не смог вносить изменения в данные посредством представления, если эти строки затем не будут снова видны в представлении.

SQL> 1.

  • 1 CREATE OR REPLACE VIEW male_delegates
  • 2 AS SELECT d_firstname, d Jastname, d_sex
  • 3 FROM delegates
  • 4 WHERE d_sex = 'M'
  • 5* WITH CHECK OPTION SQL> /

View created.

SOL> GRANT SELECT, UPDATE ON male_delegates TO taejen;

Grant succeeded.

SQL> CONNECT taejen/taejen Connected.

SQL> UPDATE ascend. male delegates SET d_firstname = 'Fred'.

WHERE d Jastname = 'Brooks';

1 row updated.

SQL> UPDATE ascend, male_delegates SET d_sex = 'F'; UPDATE ascend. male_delegates SET d_sex = 'F'.

ERROR at line 1:

ORA-1 402: view WITH CHECK OPTION where-clause violation.

SQL>

Как показано в предыдущем примере, можно все еще обновлять другие столбцы посредством представления, но нельзя вносить какие-либо изменения в строки, которые исключат повторное их появление в этом представлении.

Показать весь текст
Заполнить форму текущей работой