Управление SQL Server Desktop Engine (MSDE 2000) или SQL Server 2005 Express Edition с помощью служебной программы osql

Переводы статьи Переводы статьи
Код статьи: 325003 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

В этой статье

Аннотация

Программа SQL Server Desktop Engine (также известная как MSDE 2000) не имеет собственного пользовательского интерфейса, поскольку она изначально была разработана для работы в фоновом режиме. Пользователи взаимодействуют с MSDE 2000 через программу, в которую она внедрена. Единственным средством, поставляемым с MSDE 2000, является служебная программа osql. Исполняемый файл Sql.exe находится в папке MSSQL\Binn экземпляра MSDE 2000 по умолчанию. В данной статье рассматриваются вопросы управления MSDE 2000 с помощью служебной программы osql.

При использовании SQL Server 2005 служебную программу osql также можно использовать для управления SQL Server 2005 Express Edition. Однако эта возможность будет удалена в будущей версии Microsoft SQL Server 2005. Не рекомендуется использовать эту возможность в новых разработках, а также рекомендуется внести изменения в приложения, использующие эту возможность в настоящее время. Вместо этого используйте служебную программу Sqlcmd. Дополнительные сведения об использовании служебной программы Sqlcmd см. на следующем веб-узле MSDN (Microsoft Developer Network):
http://msdn2.microsoft.com/en-us/library/ms170207.aspx

Что такое Osql?

Служебная программа osql является приложением командной строки Microsoft Windows 32, которое можно использовать для выполнения выражений Transact-SQL и файлов сценариев. Служебная программа osql использует для взаимодействия с сервером API-интерфейс баз данных ODBC.

Использование Osql

Как правило служебная программа osql используется следующим образом:
  • Пользователи в интерактивном режиме вводят выражения Transact-SQL, как если бы они работали с командной строкой.
  • Пользователи отправляют задание osql одним из следующих способов:
    • указав одиночное выражение Transact-SQL для запуска -или-

    • -или- указав в служебной программе файл сценария, содержащий выражения Transact-SQL для запуска.

Интерактивный ввод выражений Transact-SQL

Чтобы вывести список параметров служебной программы osql (вводятся с учетом регистра), введите в командной строке следующую команду и нажмите клавишу «ВВОД»:

osql -?

Дополнительные сведения о каждом параметре служебной программы osql см. в разделе «osql Utility» (служебная программа osql) веб-узла SQL Server Books Online.

Для интерактивного ввода выражений Transact-SQL выполните следующие действия:

  1. Убедитесь в том, что программа MSDE 2000 запущена.
  2. Подключитесь к MSDE 2000 (дополнительные сведения см. в разделе «Подключение к SQL Server Desktop Engine (MSDE 2000)».
  3. В окне osql введите выражения Transact-SQL и нажмите клавишу «ВВОД». После нажатия клавиши «ВВОД» в конце каждой строки, программа osql кэширует выражения в этой строке.

    • Чтобы выполнить кэшированные к настоящему моменту выражения, введите «Go» и нажмите клавишу «ВВОД».

    • Чтобы выполнить пакет выражений Transact-SQL, введите каждую команду Transact-SQL в отдельной строке. Затем введите «Go» в последней строке, чтобы обозначить конец пакета и выполнить кэшированные к настоящему моменту выражения.

    Результаты будут выведены в окне консоли.

  4. Чтобы выйти из программы osql, введите команду QUIT или EXIT и нажмите клавишу «ВВОД».

Отправка задания Osql

Обычно отправка задания osql выполняется одним из двух способов. Можно либо
  • указать одиночное выражение Transact-SQL для запуска,

    -или-

  • -или- указать служебной программе на файл сценария.
Ниже приведены дополнительные сведения о каждом способе.

Указание одиночного выражения Transact-SQL

Чтобы выполнить выражение Transact-SQL на локальном экземпляре MSDE 2000 по умолчанию, введите команду, подобную приведенной ниже:

osql -E -q "выражение Transact-SQL"

где

  • параметр -E указывает, что используется проверка подлинности Microsoft Windows NT.

    -и-

  • -и- параметр -q приводит к выполнению выражения Transact-SQL, но при этом после выполнения запроса программа osql не завершает работу.
Чтобы выполнить выражение Transact-SQL и завершить работу программы osql, используйте вместо аргумента -q аргумент -Q.

Указание служебной программе файла сценария

Чтобы указать служебной программе на файл сценария, выполните следующие действия:
  1. Создайте файл сценария, содержащий пакет выражений Transact-SQL (например, myQueries.sql).
  2. Откройте окно командной строки, введите команду, подобную приведенной ниже, и нажмите клавишу «ВВОД»:

    osql -E -i входной_файл

    где

    входной_файл — это полный путь к файлу сценария. Например, если файл сценария myQueries.sql находится в папке C:\Queries, замените параметр входной_файл на C:\Queries\myQueries.sql.

    Результаты выполнения файла сценария будут выведены в окне консоли. Если необходимо перенаправить результаты в файл, добавьте к приведенной выше команде аргумент -oвыходной_файл. Например,

    osql -E -i входной_файл -o выходной_файл

    где

    выходной_файл — это полный путь к выходному файлу.

    Чтобы удалить в выходных данных нумерацию и знаки приглашения, добавьте к приведенной выше команде параметр -n. Например,

    osql -E -i входной_файл -o выходной_файл -n

Подключение к SQL Server Desktop Engine (MSDE 2000)

Чтобы подключиться к MSDE 2000, выполните следующие действия:
  1. Убедитесь в том, что программа MSDE 2000 запущена.
  2. Откройте окно командной строки на компьютере, где размещен экземпляр MSDE 2000, к которому необходимо подключиться.
  3. Введите следующую команду и нажмите клавишу «ВВОД»:

    osql -E

    Эта команда производит подключение к локальному экземпляру MSDE 2000 по умолчанию с использованием проверки подлинности Windows.

    Чтобы подключиться к именованному экземпляру MSDE 2000, введите:

    osql -E -S имя_сервера\имя_экземпляра

    Если появляется следующее сообщение об ошибке, значит, программа MSDE 2000 не запущена или указано неправильное имя экземпляра MSDE 2000:
    [Shared Memory]SQL Server does not exist or access denied.
    [Shared Memory]ConnectionOpen (Connect()).
    Если подключение к серверу выполнено успешно, появится следующее приглашение:

       1>
    						
    Это приглашение означает, что программа osql запущена. Теперь можно интерактивно вводить выражения Transact-SQL, а результаты будут выведены в окне командной строки.

Управление MSDE 2000

В остальных разделах данной статьи кратко описываются команды Transact-SQL, наиболее часто используемые для управления MSDE 2000.

Создание нового имени входа

Пользователь не может подключиться к серверу SQL Server, не предоставив допустимый код входа. Хранимая процедура sp_grantlogin используется для авторизации сетевой учетной записи Microsoft Windows (как группы, так и учетной записи пользователя) для использования в качестве имени входа сервера SQL Server для подключения к экземпляру SQL Server с использованием проверки подлинности Windows. В приведенном ниже примере пользователю Windows NT с именем Corporate\Test предоставляется разрешение на подключение к экземпляру SQL Server:
EXEC sp_grantlogin 'Corporate\Test'
				
Только обладатели фиксированных ролей сервера sysadmin или securityadmin могут выполнять хранимую процедуру sp_grantlogin. Дополнительные сведения о ролях см. в разделе «Roles, SQL Server Architecture» (роли, архитектура SQL Server) веб-узла SQL Server Books Online.

Дополнительные сведения о хранимой процедуре sp_grantlogin см. в разделе «sp_grantlogin, Transact-SQL Reference» (sp_grantlogin, справка по Transact-SQL) веб-узла SQL Server Books Online.

Хранимая процедура sp_addlogin используется для создания нового имени пользователя для подключений к серверу SQL Server с использованием проверки подлинности SQL Server. В приведенном ниже примере создается имя пользователя SQL Server для пользователя «test» с паролем «hello»:
EXEC sp_addlogin 'test','hello'
				
Только обладатели фиксированных ролей сервера sysadmin и securityadmin могут выполнять хранимую процедуру sp_addlogin. Дополнительные сведения о хранимой процедуре sp_addlogin см. в разделе «sp_addlogin, Transact-SQL Reference» (sp_addlogin, справка по Transact-SQL) веб-узла SQL Server Books Online.

Доступ к базе данных

После того, как пользователи подключатся к экземпляру SQL Server, они не могут выполнять действия с базой данных до тех пор, пока пользователь dbo не предоставит им доступ к базе данных. Хранимая процедура sp_grantdbaccess используется для добавления в текущую базу данных учетной записи безопасности для нового пользователя. В приведенном ниже примере в текущую базу данных добавляется учетная запись для пользователя Microsoft Windows NT с именем Corporate\BobJ, и этой учетной записи присваивается имя «Bob»:
EXEC sp_grantdbaccess 'Corporate\BobJ', 'Bob'
				

Хранимая процедура sp_adduser выполняет ту же функцию, что и хранимая процедура sp_grantdbaccess. Поскольку хранимая процедура sp_adduser оставлена для обеспечения обратной совместимости, корпорация Майкрософт рекомендует использовать хранимую процедуру sp_grantdbacess.

Только обладатели фиксированной роли сервера sysadmin и фиксированных ролей базы данных db_accessadmin и db_owner могут выполнять хранимую процедуру sp_grantdbaccess. Дополнительные сведения о хранимой процедуре sp_grantdbaccess см. в разделе «sp_grantdbaccess, Transact-SQL Reference» (sp_grantdbaccess, справка по Transact-SQL) веб-узла SQL Server Books Online.

Изменение пароля для имени входа

Чтобы изменить пароль для определенного имени входа, используйте хранимую процедуру sp_password. В приведенном ниже примере пароль для имени входа «test» изменяется с «ok» на «hello»:
EXEC sp_password 'ok', 'hello','test'
				

Разрешения на выполнение устанавливаются по умолчанию для общей роли для пользователя, изменяющего пароль для собственного имени входа. Только обладатели роли sysadmin могут изменять пароль для учетной записи другого пользователя. Дополнительные сведения о хранимой процедуре sp_password см. в разделе «sp_password, Transact-SQL Reference» (sp_password, справка по Transact-SQL) веб-узла SQL Server Books Online.

Создание базы данных

База данных MSDE 2000 состоит из набора таблиц, которые содержат данные и другие объекты, такие как представления, индексы, хранимые процедуры и триггеры, которые определены для поддержки действий, выполняемых с данными. Чтобы создать базу данных MSDE 2000, выполните команду Transact-SQL «CREATE DATABASE». Дополнительные сведения о создании базы данных см. в разделе «Creating a Database» (создание базы данных) веб-узла SQL Server Books Online.

В приведенном ниже примере создается база данных с именем Test. Поскольку дополнительные параметры в команде не используются, база данных Test будет иметь тот же размер, что и база данных model:
CREATE DATABASE Test
				
Разрешение CREATE DATABASE устанавливается по умолчанию для обладателей фиксированных ролей сервера sysadmin и dbcreator. Дополнительные сведения о команде «CREATE DATABASE» см. в разделе «CREATE DATABASE, Transact-SQL Reference» (CREATE DATABASE, справка по Transact-SQL) веб-узла SQL Server Books Online.

Чтобы создать объект базы данных, выполните команду Transact-SQL «CREATE». Например, чтобы создать новую таблицу, выполните команду Transact-SQL «CREATE TABLE». Дополнительные сведения см. на веб-узле SQL Server Books Online.

Резервное копирование и восстановление баз данных

Компонент резервного копирования и восстановления SQL Server обеспечивает защиту критически важных данных, хранящихся в базах данных SQL Server.

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

Дополнительные сведения об операциях резервного копирования и восстановления баз данных см. в разделе «Backing Up and Restoring Databases» (резервное копирование и восстановление баз данных) веб-узла SQL Server Books Online.

В приведенном ниже примере выполняется полное резервное копирование базы данных с именем mydb, резервной копии присваивается имя Mydb.bak, а затем она сохраняется в папку C:\Msde\Backup:

BACKUP DATABASE mydb TO DISK = 'C:\MSDE\Backup\mydb.bak'
				

В приведенном ниже примере выполняется резервное копирование журналов для базы данных с именем mydb, резервной копии присваивается имя Mydb_log.bak, а затем она сохраняется в папку C:\Msde\Backup:

BACKUP LOG mydb TO DISK = 'C:\MSDE\Backup\mydb_log.bak'
				

Разрешения BACKUP DATABASE и BACKUP LOG устанавливаются по умолчанию для обладателей фиксированной роли сервера sysadmin и фиксированных ролей базы данных db_owner и db_backupoperator. Дополнительные сведения о выражении BACKUP см. в разделе «BACKUP, Transact-SQL Reference» (BACKUP, справка по Transact-SQL) веб-узла SQL Server Books Online.


MSDE включает службу агента SQL Server для управления запланированными заданиями. Например, можно создать и запланировать задание резервного копирования Transact-SQL. Служба агента SQL Server управляет планированием задания. Примеры кода по использованию различных хранимых процедур с MSDE 2000 для выполнения резервного копирования и планирования резервного копирования см. в следующей статье базы знаний Майкрософт:
241397 Резервное копирование базы данных Microsoft Data Engine с помощью Transact-SQL
Дополнительные сведения о службе агента SQL Server Agent Service см. в разделе «SQL Server Agent Service» (служба агента SQL Server) веб-узла SQL Server Books Online.

Резервное копирование базы данных является только половиной процесса. Важно знать, как восстановить базу данных из резервной копии. В приведенном ниже примере восстанавливается база данных с именем mydb из файла резервной копии C:\Msde\Backup\Mydb.bak:

RESTORE DATABASE mydb FROM DISK ='C:\MSDE\Backup\mydb.bak'
				
Если восстанавливаемая база данных не существует, пользователь должен обладать разрешениями CREATE DATABASE для выполнения выражения RESTORE. Если база данных существует, разрешения RESTORE устанавливаются по умолчанию для обладателей фиксированных ролей сервера sysadmin и dbcreator и владельца базы данных (dbo). Дополнительные сведения о выражении RESTORE см. в разделе «RESTORE, Transact-SQL Reference» (RESTORE, справка по Transact-SQL) веб-узла SQL Server Books Online.

Подключение и отключение базы данных

Файлы журнала данных и транзакций базы данных можно отключить и повторно подключить к другому серверу или даже к тому же серверу. Отключение базы данных приводит к удалению базы данных с сервера SQL Server, но не затрагивает ее в файлах журнала данных и транзакций, которые составляют базу данных. Эти файлы журнала и транзакций можно впоследствии использовать для подключения базы данных к любому экземпляру SQL Server, включая сервер, от которого база данных была отключена. Это делает базу данных доступной в том же состоянии, в котором она находилась на момент отключения. Дополнительные сведения см. в разделе «Attaching and Detaching a Database» (подключение и отключение базы данных) веб-узла SQL Server Books Online.

В приведенном ниже примере производится отключение базы данных с именем mydb от текущего экземпляра SQL Server:
EXEC sp_detach_db 'mydb'
				
Только обладатели фиксированной роли сервера sysadmin могут выполнять хранимую процедуру sp_detach_db. Дополнительные сведения о хранимой процедуре sp_detach_db см. в разделе «sp_detach_db, Transact-SQL Reference» (sp_detach_db, справка по Transact-SQL) веб-узла SQL Server Books Online.

В приведенном ниже примере производится подключение двух файлов из базы данных с именем mydb к текущему экземпляру SQL Server:
EXEC sp_attach_db @dbname = N'mydb', 
   @filename1 = N'C:\MSDE\Backup\mydb.mdf', 
   @filename2 = N'C:\MSDE\Backup\mydb.ldf'
				
Заглавная буква N используется в качестве префикса константы строки Юникод. Префикс «N» означает «национальный язык» в стандарте SQL-92. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:
239530 INF: Константы строки Юникод в SQL Server требуют использования префикса N (Эта ссылка может указывать на содержимое полностью или частично на английском языке)
Только обладатели фиксированных ролей сервера sysadmin и dbcreator могут выполнять данную процедуру. Дополнительные сведения о хранимой процедуре sp_attach_db см. в разделе «sp_attach_db, Transact-SQL Reference» (sp_attach_db, справка по Transact-SQL) веб-узла SQL Server Books Online.

Приведенные ниже сведения об использовании служебной программы osql применимы ко всем выпускам Microsoft SQL Server 2000.

Ссылки

Для загрузки обновленной версии руководства SQL Server 2000 Books Online посетите следующий веб-узел корпорации Майкрософт:
http://www.microsoft.com/sql/techinfo/books.mspx
Для загрузки версии руководства SQL Server Books Online для SQL Server 7.0 посетите следующий веб-узел корпорации Майкрософт:
http://download.microsoft.com/download/SQL70/File/2/Win98/En-US/SQLBOL.exe
Дополнительные сведения о программе MSDE 2000, см. в следующих статьях базы данных Майкрософт:
319930 Подключение копии SQL Server Desktop Edition или SQL Server 2005 Express Edition
241397 Резервное копирование базы данных Microsoft Data Engine с помощью Transact-SQL

Свойства

Код статьи: 325003 - Последний отзыв: 6 апреля 2007 г. - Revision: 2.1
Информация в данной статье относится к следующим продуктам.
  • Microsoft SQL Server 2000 Desktop Engine (Windows)
  • Microsoft SQL Server 2000 Desktop Engine (MSDE) SP3a
Ключевые слова: 
kbdownload kbhowtomaster KB325003
Заявление об отказе относительно содержимого статьи о продуктах, поддержка которых прекращена
Эта статья содержит сведения о продуктах, поддержка которых корпорацией Майкрософт прекращена. Поэтому она предлагается как есть и обновляться не будет.

Отправить отзыв

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com