Обработка баз данных на Visual Basic®.NET
Шрифт:
Для просмотра всех объектов базы данных с помощью хранимой процедуры sp_help выполните действия, приведенные ниже.
1. Очистите диалоговое окно запроса Query, нажав комбинацию клавиш <Ctrl+Shift+Del>.
2. Введите в нем следующую команду:
3. Выполните введенную команду. SQL Server сгенерирует список доступных объектов базы данных, как показано на рис. 3.15.
РИС. 3.15.
Вы можете создавать собственные хранимые процедуры. Этот процесс описан в разделе о создании и выполнении хранимых процедур далее в этой главе. Кроме пользовательских хранимых процедур используемой базы данных, существуют и системные хранимые процедуры, которые доступны для любой базы данных на SQL Server. Примеры использования системных хранимых процедур приведены далее в главе.
Использование существующей базы данных
Для работы с определенной базой данных в программе Query Analyzer можно использовать команду USE. После выбора с ее помощью соответствующей базы данных все вводимые SQL-команды будут выполняться для этой выбранной базы данных. Обратите особое внимание на необходимость применения команды USE, поскольку существует ряд команд, которые имеют один и тот же синтаксис при использовании с разными базами данных. Выполнение такой команды "не с той базой данных" может привести к неприятным последствиям.
Во избежание случайного ошибочного выполнения команд по отношению к "не базе данных" нужно явно указать используемую по умолчанию базу данных вместо используемой по умолчанию основной базы данных master (т.е. в ней сохраняются только данные конфигурации сервера). Для каждой учетной записи можно указать свою используемую по умолчанию базу данных во время создания учетной записи или впоследствии с помощью способа, описанного далее в главе.
Например, для активизации базы данных novelty вместо основной базы данных master выполните перечисленные ниже действия.
1. Введите в окне Query Analyzer команду USE novelty. Если база данных novelty существует, то SQL Server вернет следующее сообщение:
Что в переводе означает:
2. Если же базы данных novelty на этом сервере нет, то появится сообщение
Что в переводе означает следующее:
Если вы забыли имя базы данных, то запустите программу SQL Server Enterprise Manager и найдите интересующую вас базу данных. Для просмотра объектов базы данных можно также воспользоваться хранимой процедурой sp_helpdb.
Создание команд SQL в программе Query Analyzer
С помощью программы Query Analyzer можно создавать практически любые команды SQL, причем этот способ обладает многими преимуществами по сравнению со всеми другими способами создания команд SQL. Учтите, что синтаксис некоторых команд SQL может оказаться гораздо сложнее, чем простое использование графических элементов управления в программе SQL Server Enterprise Manager, особенно при использовании редко выполняемых команд, например для создания баз данных. В этом смысле программа Query Analyzer обладает несомненным преимуществом интерактивного создания команд SQL и мгновенно реагирует на создаваемые команды. Query Analyzer обладает некоторыми другими функциональными возможностями, которых нет программе SQL Server Enterprise Manager, например способностью запускать запросы и хранимые процедуры.
В главе 2, "Запросы и команды на языке SQL", рассматриваются некоторые наиболее часто используемые команды SQL. Большая часть этого материала относится также к выполнению запросов и хранимых процедур для SQL Server.
Использование представлений для управления доступом к данным
Представление (view) — это, по сути, определение запроса, хранящегося в базе данных. Оно подобно определению запроса в базах данных Microsoft Jet, однако отличается местом хранения: располагается в базе данных и предоставляет приложению-клиенту доступ к данным.
Представление можно использовать в том случае, если необходимо предоставить пользователю доступ к данным, но нежелательно, чтобы он мог обращаться непосредственно к данным в таблице. Представления можно рассматривать как виртуальные таблицы, которые могут использоваться точно так же, как и другие реальные таблицы базы данных. Фактически для приложения-клиента представление выглядит как обычная таблица, а кроме того, дает ему ряд преимуществ.
Например, если пользователь получает доступ к данным с помощью представления, а не посредством прямого обращения к таблице, это открывает ему следующие возможности:
• изменять структуру таблицы, не меняя ассоциированного с ней представления;
• ограничивать количество строк и столбцов, возвращаемых представлением;
• обеспечивать простой доступ к данным, возвращаемым из нескольких таблиц, с помощью объединений в представлении.
Для того чтобы полностью использовать все преимущества представлений, необходимо разработать стратегию безопасности базы данных. Это позволяет применить специализированные разрешения для представлений, а не таблиц, что упрощает выдачу и отмену разрешений для разных типов пользователей. Эти и другие вопросы обеспечения безопасности обсуждаются далее в главе.