HOWTO: Osql 유틸리티를 사용하여 SQL Server Desktop Engine(MSDE 2000) 관리하기

기술 자료 번역 기술 자료 번역
기술 자료: 325003 - 이 문서가 적용되는 제품 보기.
모두 확대 | 모두 축소

이 페이지에서

요약

SQL Server Desktop Engine은 MSDE 2000이라고도 하는데 주로 백그라운드로 실행되도록 설계되었기 때문에 자체의 사용자 인터페이스가 없습니다. 따라서 MSDE 2000과 상호 작용할 때는 포함되어 있는 프로그램을 통해서 합니다. MSDE 2000과 함께 제공되는 유일한 도구는 osql 유틸리티입니다. 실행 파일인 Sql.exe는 기본 MSDE 2000 인스턴스의 경우 MSSQL\Binn 폴더에 있습니다. 이 문서에서는 주로 osql 유틸리티를 사용하여 MSDE 2000을 관리하는 방법에 대해 설명합니다.

Osql의 정의

osql 유틸리티는 Microsoft Windows 32 명령 프롬프트 유틸리티로, Transact-SQL 문과 스크립트 파일을 실행하는 데 사용할 수 있습니다. osql 유틸리티는 서버와 통신하는 데 ODBC 데이터베이스 응용 프로그램 인터페이스(API)를 사용합니다.

Osql을 사용하는 방법

일반적으로 osql 유틸리티는 아래와 같은 방법으로 사용합니다.
  • 명령 프롬프트에서 작업할 때와 비슷한 방법으로 대화형으로 Transact-SQL 문을 입력합니다.
  • 아래와 같은 방법으로 osql 작업을 제출합니다.
    • 실행할 단일 Transact-SQL 문을 지정합니다. -또는-

    • 실행할 Transact-SQL 문이 들어 있는 스크립트 파일을 유틸리티로 가리킵니다.

대화형으로 Transact-SQL 문 입력

osql 유틸리티의 대소문자 구분 옵션 목록을 표시하려면 명령 프롬프트에서 아래와 같이 입력한 다음 Enter 키를 누르십시오.

osql -?

osql 유틸리티 옵션에 대한 자세한 내용은 SQL Server 온라인 설명서의 "osql 유틸리티" 항목을 참조하십시오.

대화형으로 Transact-SQL 문을 입력하려면 다음과 같이 하십시오.

  1. MSDE 2000이 실행 중인지 확인합니다.
  2. MSDE 2000에 연결합니다. 자세한 내용은 "SQL Server Desktop Engine(MSDE 2000)에 연결" 절을 참조하십시오.
  3. osql 프롬프트에서 Transact-SQL 문을 입력한 다음 Enter 키를 누릅니다. 각 입력 줄의 끝에서 Enter 키를 누르면 osql이 해당 명령줄을 캐시에 임시 저장합니다.

    • 현재 캐시에 임시 저장되어 있는 명령문을 실행하려면 "Go"를 입력한 다음 Enter 키를 누릅니다.

    • 여러 개의 Transact-SQL 문을 일괄 실행하려면 각 Transact-SQL 명령을 별도의 줄에 입력합니다. 그런 다음 마지막 줄에 "Go"를 입력하여 해당 배치가 끝났음을 알리고 현재 캐시에 임시 저장되어 있는 명령문을 실행합니다.

    결과가 콘솔 창에 나타납니다.

  4. osql에서 나가려면 QUIT나 EXIT를 입력한 다음 Enter 키를 누릅니다.

Osql 작업 제출

일반적으로 osql 작업은 다음 두 가지 방법으로 제출할 수 있습니다.
  • 단일 Transact-SQL 문을 지정합니다.

    -또는-

  • 유틸리티로 스크립트 파일을 가리킵니다.
각 방법에 대한 자세한 내용은 다음과 같습니다.

단일 Transact-SQL 문 지정

로컬 기본 MSDE 2000 인스턴스에 대해 Transact-SQL 문을 실행하려면 아래와 유사한 명령을 입력하십시오.

osql -E -q "Transact-SQL 문"

여기서

  • -E는 Microsoft Windows NT 인증을 사용합니다.

    -및-

  • -q는 Transact-SQL 문을 실행하지만 쿼리가 완료되어도 osql을 종료하지 않습니다.
Transact-SQL 문을 실행하고 osql을 종료하려면 -q 대신 -Q 인수를 사용하십시오.

유틸리티로 스크립트 파일 가리키기

유틸리티로 스크립트 파일을 가리키려면 다음과 같이 하십시오.
  1. Transact-SQL 문의 일괄 처리가 포함되어 있는 스크립트 파일(예: myQueries.sql)을 만듭니다.
  2. 명령 프롬프트를 열고, 아래와 유사한 명령을 입력한 다음 Enter 키를 누릅니다.

    osql -E -i input_file

    여기서

    input_file은 스크립트 파일의 전체 경로입니다. 예를 들어, myQueries.sql 스크립트 파일이 C:\Queries 폴더에 있으면 input_file 매개 변수를 C:\Queries\myQueries.sql로 대체합니다.

    스크립트 파일의 결과가 콘솔 창에 나타납니다. 결과를 파일로 향하게 하려면 앞에 나와 있는 명령에 -o output_file 인수를 추가합니다. 예를 들면 다음과 같습니다.

    osql -E -i input_file -o output_file

    여기서

    output_file은 출력 파일의 전체 경로입니다.

    출력에서 번호 매기기 및 프롬프트 기호를 제거하려면 앞에 나와 있는 명령에 -n 옵션을 추가합니다. 예를 들면 다음과 같습니다.

    osql -E -i input_file -o output_file -n

SQL Server Desktop Engine(MSDE 2000)에 연결하기

MSDE 2000에 연결하려면 다음과 같이 하십시오.
  1. MSDE 2000이 실행 중인지 확인합니다.
  2. 연결할 MSDE 2000의 인스턴스를 호스트하는 컴퓨터에서 명령 프롬프트를 엽니다.
  3. 다음 명령을 입력한 후 Enter 키를 누릅니다.

    osql -E

    그러면 Windows 인증을 사용하여 MSDE 2000의 로컬 기본 인스턴스에 연결됩니다.

    MSDE 2000의 명명된 인스턴스에 연결하려면 다음과 같이 입력하십시오.

    osql -E -S servername\instancename

    다음과 같은 내용의 오류 메시지가 나타나면 MSDE 2000이 실행되고 있지 않거나 설치된 MSDE 2000의 명명된 인스턴스 이름을 잘못 입력한 것입니다.
    [공유 메모리]SQL Server가 없거나 액세스가 거부되었습니다.
    [공유 메모리]ConnectionOpen (Connect()).
    성공적으로 서버에 연결되면 다음과 같은 프롬프트가 나타납니다.

       1>
    						
    이 프롬프트는 osql이 시작되었음을 나타납니다. 이제 대화형으로 Transact-SQL 문을 입력할 수 있고 결과가 명령 프롬프트 줄에 나타납니다.

MSDE 2000 관리

이 문서의 나머지 절에서는 MSDE 2000을 관리하는 데 자주 사용되는 Transact-SQL 명령에 대해 간략하게 소개합니다.

새 로그인 만들기

유효한 로그온 ID를 제공해야 SQL Server에 연결할 수 있습니다. Windows 인증을 사용하여 SQL Server 인스턴스에 연결하기 위해 SQL Server 로그인으로 사용할 목적으로 Microsoft Windows 네트워크 계정(그룹이나 사용자 계정)을 인증하는 데 sp_grantlogin 저장 프로시저가 사용됩니다. 다음 예제를 사용하면 Corporate\Test라는 Windows NT 사용자가 SQL Server 인스턴스에 연결할 수 있습니다.
EXEC sp_grantlogin 'Corporate\Test'
				
sysadmin 또는 securityadmin 고정 서버 역할의 구성원만이 sp_grantlogin 저장 프로시저를 실행할 수 있습니다. 역할에 대한 자세한 내용은 SQL Server 온라인 설명서의 "역할, SQL Server 아키텍처" 항목을 참조하십시오.

sp_grantlogin 저장 프로시저에 대한 자세한 내용은 SQL Server 온라인 설명서의 "sp_grantlogin, Transact-SQL 참조" 항목을 참조하십시오.

SQL Server 인증 사용 SQL Server 연결을 위한 새 로그인 계정을 만들 때는 sp_addlogin 저장 프로시저를 사용합니다. 다음 예제는 이름이 "test"이고 암호는 "hello"인 사용자를 위한 SQL Server 로그인을 만듭니다.
EXEC sp_addlogin 'test','hello'
				
sysadminsecurityadmin 고정 서버 역할의 구성원만이 sp_addlogin 저장 프로시저를 실행할 수 있습니다. sp_addlogin 저장 프로시저에 대한 자세한 내용은 SQL Server 온라인 설명서의 "sp_addlogin, Transact-SQL 참조" 항목을 참조하십시오.

데이터베이스에 액세스하기

사용자는 SQL Server 인스턴스에 연결한 후에도 dbo가 데이터베이스에 대한 액세스 권한을 부여하기 전까지는 데이터베이스에서 작업을 수행할 수 없습니다. sp_grantdbaccess 저장 프로시저를 사용하면 현재 데이터베이스에 대한 새 사용자의 보안 계정을 추가할 수 있습니다. 다음 예제는 현재 데이터베이스에 대한 Corporate\BobJ라는 Microsoft Windows NT 사용자의 계정을 추가하고 여기에 "Bob"이라는 이름을 지정합니다.
EXEC sp_grantdbaccess 'Corporate\BobJ', 'Bob'
				

sp_adduser 저장 프로시저는 sp_grantdbaccess 저장 프로시저와 같은 기능을 수행합니다. sp_adduser 저장 프로시저는 이전 버전과의 호환을 위해 포함된 것이므로 sp_grantdbacess 저장 프로시저를 사용하는 것이 좋습니다.

sysadmin 고정 서버 역할과 db_accessadmindb_owner 고정 데이터베이스 역할의 구성원만이 sp_grantdbaccess 저장 프로시저를 실행할 수 있습니다. sp_grantdbaccess 저장 프로시저에 대한 자세한 내용은 SQL Server 온라인 설명서의 "sp_grantdbaccess, Transact-SQL 참조" 항목을 참조하십시오.

로그인 암호를 변경하는 방법

로그인 암호를 변경하려면 sp_password 저장 프로시저를 사용하십시오. 다음 예제는 "test"라는 로그인의 암호를 "ok"에서 "hello"로 변경합니다.
EXEC sp_password 'ok', 'hello','test'
				

실행 권한은 자신의 로그인 암호를 변경할 사용자의 공용 역할에 기본적으로 부여됩니다. sysadmin 역할의 구성원만이 다른 사용자의 로그인 암호를 변경할 수 있습니다. sp_password 저장 프로시저에 대한 자세한 내용은 SQL Server 온라인 설명서의 "sp_password, Transact-SQL 참조" 항목을 참조하십시오

데이터베이스 만들기

MSDE 2000 데이터베이스는 데이터와, 이러한 데이터를 사용하여 수행하는 작업을 지원하도록 정의된 뷰, 인덱스, 저장 프로시저 및 트리거 같은 그 밖의 다른 개체가 포함되어 있는 테이블 모음으로 이루어져 있습니다. MSDE 2000 데이터베이스를 만들려면 "CREATE DATABASE" Transact-SQL 명령을 사용하십시오. 데이터베이스 만들기에 대한 자세한 내용은 SQL Server 온라인 설명서의 "데이터베이스 만들기" 항목을 참조하십시오.

다음 예제는 Test라는 데이터베이스를 만듭니다. 명령에 다른 매개 변수를 추가하지 않았기 때문에 Test 데이터베이스의 크기가 모델 데이터베이스의 크기와 같습니다.
CREATE DATABASE Test
				
CREATE DATABASE 권한은 sysadmindbcreator 고정 서버 역할의 구성원에 기본적으로 부여됩니다. "CREATE DATABASE" 명령에 대한 자세한 내용은 SQL Server 온라인 설명서의 "CREATE DATABASE, Transact-SQL 참조" 항목을 참조하십시오.

데이터베이스 개체를 새로 만들려면 CREATE Transact-SQL 명령을 사용하십시오. 예를 들어, 테이블을 새로 만들려면 "CREATE TABLE" Transact-SQL 명령을 사용하십시오. 자세한 내용은 SQL Server 온라인 설명서를 참조하십시오.

데이터베이스 백업 및 복원

SQL Server의 백업 및 복원 구성 요소는 SQL Server 데이터베이스에 저장되어 있는 중요 데이터를 보호하는 데 중요한 안전 장치를 제공합니다.

적절히 계획한다면 다음을 포함하여 많은 실패에서 복구할 수 있습니다.
  • 미디어 실패
  • 사용자 오류
  • 영구적인 서버 손실
또한, 데이터베이스 백업 및 복원 작업은 한 서버에서 다른 서버로 데이터베이스를 복사하는 등의 다른 목적에도 유용합니다. 한 컴퓨터의 데이터베이스를 백업해서 다른 컴퓨터에 복원하면 데이터베이스를 빠르고 쉽게 복사할 수 있습니다.

데이터베이스 백업 및 복원 작업에 대한 자세한 내용은 SQL Server 온라인 설명서의 "데이터베이스 백업 및 복원" 항목을 참조하십시오.

다음 예제는 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_ownerdb_backupoperator 고정 데이터베이스 역할의 구성원에 기본적으로 부여됩니다. BACKUP 문에 대한 자세한 내용은 SQL Server 온라인 설명서의 "BACKUP, Transact-SQL 참조" 항목을 참조하십시오.


MSDE에는 예약된 작업을 관리하기 위한 SQL Server 에이전트 서비스가 포함되어 있습니다. 예를 들어, Transact-SQL 백업 작업을 만들고 예약할 수 있습니다. SQL Server 에이전트 서비스는 작업 예약을 관리합니다. MSDE 2000에서 다양한 저장 프로시저를 사용하여 백업을 수행하고 백업 작업을 예약하는 방법에 대한 예제 코드의 자세한 사항은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
241397 HOWTO: Transact-SQL을 사용하여 Microsoft Data Engine 데이터베이스 백업
SQL Server 에이전트 서비스에 대한 자세한 내용은 SQL Server 온라인 설명서의 "SQL Server 에이전트 서비스" 항목을 참조하십시오.

데이터베이스를 백업했다고 모든 작업이 끝난 것은 아닙니다. 백업에서 데이터베이스를 복원하는 방법도 알고 있어야 합니다. 다음 예제는 C:\Msde\Backup\Mydb.bak이라는 백업 파일에서 mydb라는 데이터베이스를 복원합니다.

RESTORE DATABASE mydb FROM DISK ='C:\MSDE\Backup\mydb.bak'
				
복원할 데이터베이스가 존재하지 않을 경우에 RESTORE 문을 실행하려면 사용자에게 CREATE DATABASE 권한이 있어야 합니다. 이 데이터베이스가 존재하면 RESTORE 권한이 sysadmindbcreator 고정 서버 역할의 구성원과 데이터베이스의 소유자(dbo)에 기본적으로 부여됩니다. RESTORE 문에 대한 자세한 내용은 SQL Server 온라인 설명서의 "RESTORE, Transact-SQL 참조" 항목을 참조하십시오.

데이터베이스 연결 및 분리

데이터베이스의 데이터 및 트랜잭션 로그 파일을 분리한 다음 다른 서버나 같은 서버에 다시 연결할 수 있습니다. 데이터베이스를 분리하면 SQL Server에서는 이 데이터베이스가 분리되지만 이 데이터베이스를 구성하는 데이터 및 트랜잭션 로그 파일에서는 이 데이터베이스가 그대로 있습니다. 이러한 데이터 및 트랜잭션 로그 파일을 사용하여 이 데이터베이스를 분리했던 서버를 포함하여 어떠한 SQL Server 인스턴스에도 데이터베이스를 연결할 수 있습니다. 연결을 하면 데이터베이스를 분리했을 때와 정확히 같은 상태로 데이터베이스를 사용할 수 있습니다. 자세한 내용은 SQL Server 온라인 설명서의 "데이터베이스 연결 및 분리" 항목을 참조하십시오.

다음 예제는 현재 SQL Server 인스턴스에서 mydb라는 데이터베이스를 분리합니다.
EXEC sp_detach_db 'mydb'
				
sysadmin 고정 서버 역할의 구성원만이 sp_detach_db 저장 프로시저를 실행할 수 있습니다. sp_detach_db 저장 프로시저에 대한 자세한 내용은 SQL Server 온라인 설명서의 "sp_detach_db, Transact-SQL 참조" 항목을 참조하십시오.

다음 예제는 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 표준의 국가별 언어(National Language)의 약어입니다. 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
239530 INF: SQL Server의 유니코드 문자열 상수에 N 접두사 필요
sysadmindbcreator 고정 서버 역할의 구성원만이 이 프로시저를 실행할 수 있습니다. sp_attach_db 저장 프로시저에 대한 자세한 내용은 SQL Server 온라인 설명서의 "sp_attach_db, Transact-SQL 참조" 항목을 참조하십시오.

osql 유틸리티 사용에 대한 아래의 정보는 Microsoft SQL Server 2000의 모든 다른 버전에도 적용됩니다.

참조

SQL Server 2000 온라인 설명서의 업데이트된 버전을 다운로드하려면 다음 Microsoft 웹 사이트를 방문하십시오.
http://www.microsoft.com/korea/sql/techinfo/productdoc/2000/books.asp
SQL Server 7.0 버전의 SQL Server 온라인 설명서를 다운로드하려면 다음 Microsoft 웹 사이트를 방문하십시오.
http://download.microsoft.com/download/SQL70/File/2/Win98/En-US/SQLBOL.exe
MSDE 2000에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
319930 HOWTO: Microsoft Desktop Engine에 연결
241397 HOWTO: Transact-SQL을 사용하여 Microsoft Data Engine 데이터베이스 백업




Microsoft 제품 관련 기술 전문가들과 온라인으로 정보를 교환하시려면 Microsoft 뉴스 그룹에 참여하시기 바랍니다.

속성

기술 자료: 325003 - 마지막 검토: 2004년 8월 12일 목요일 - 수정: 1.3
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft SQL Server 2000 Desktop Engine (Windows)
  • Microsoft SQL Server 2000 Desktop Engine (MSDE) SP3a
키워드:?
kbdownload kbhowtomaster KB325003
더 이상 지원되지 않는 제품의 KB 내용에 대한 고지 사항
이 문서에서는 Microsoft에서 더 이상 지원하지 않는 제품에 대해 설명합니다. 따라서 이 문서는 "있는 그대로" 제공되며 업데이트되지 않습니다.

피드백 보내기

 

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