В главе 2, "Запросы и команды на языке SQL", рассматриваются некоторые наиболее часто используемые команды SQL. Большая часть этого материала относится также к выполнению запросов и хранимых процедур для SQL Server.

<p>Использование представлений для управления доступом к данным</p>

Представление (view) — это, по сути, определение запроса, хранящегося в базе данных. Оно подобно определению запроса в базах данных Microsoft Jet, однако отличается местом хранения: располагается в базе данных и предоставляет приложению-клиенту доступ к данным.

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

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

• изменять структуру таблицы, не меняя ассоциированного с ней представления;

• ограничивать количество строк и столбцов, возвращаемых представлением;

• обеспечивать простой доступ к данным, возвращаемым из нескольких таблиц, с помощью объединений в представлении.

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

<p>Создание представлений с помощью программы SQL Server Enterprise Manager</p>

Представления, как и большинство других объектов базы данных, можно создавать с помощью программ SQL Server Enterprise Manager или SQL Query Analyzer. Программа SQL Server Enterprise Manager обладает мощными и выразительными графическими инструментами, а программа SQL Query Analyzer- интерактивными инструментами для создания и выполнения команд SQL, а также тестирования созданных представлений.

Для создания представления с помощью программы SQL Server Enterprise Manager выполните приведенные ниже действия.

1. В диалоговом окне Server Manager щелкните правой кнопкой мыши на папке Views в той базе данных, в которой необходимо создать представление. В этом примере используется база данных pubs.

2. Из контекстного меню выберите команду New View (Создать представление), и на экране появится окно конструктора представлений программы, как показано на рис. 3.16.

РИС. 3.16. Создание нового представления в окне программы SQL Server Enterprise Manager

НА ЗАМЕТКУ

При первом открытии диалогового окна Design View в его заголовке будут слова New View, а не Design View.

СОВЕТ

Эти графические инструменты создания представлений можно использовать для создания запросов. Для этого щелкните правой кнопкой мыши на таблице базы данных и выберите из контекстного меню команду Open Table→Query (Открыть таблицу→Запрос). Созданный запрос нельзя сохранить, потому что отдельный запрос не является объектом базы данных SQL Server. Однако конструктор базы данных полезен для создания и тестирования хранимых процедур и извлечения отдельного набора данных.

3. Для открытия диалогового окна Add Table (Добавить таблицу) щелкните на кнопке Add Table с изображением плюса и таблицы или щелкните правой кнопкой мыши на пустом поле со схемой представления и выберите в контекстном меню команду Add Table.

4. Выберите таблицу jobs и щелкните на кнопке Add (или дважды щелкните на таблице jobs) для включения таблицы jobs в представление.

5. Выберите таблицу employee и щелкните на кнопке Add (или дважды щелкните на таблице employee) для включения таблицы employee в представление.

6. Щелкните на кнопке Close, чтобы закрыть диалоговое окно Add Table.

7. Выберите поля в каждой таблице, т.е. поле job_desc в таблице jobs и поля fname и lname в таблице employee.

Перейти на страницу:

Похожие книги