grad.egloos.com

Rising 炫

포토로그 방명록



Google Adsense


SQL Server 2005 Express와 춤을 추다 Tip & Know-how

제목에 쓴 글귀는 저렇게 쓰고 마지막 문구를 '삽질을 하다'라고 읽으시면 되겠습니다.

여행을 다녀와서 돈은 없고(어차피 놀아줄 사람도 없지만), 와우 계정도 만료되고, 뭔가 새해라는 불안감에, 집에서 먼지와 친구 먹으려는 전공책을 꺼냈습니다.

그래 오늘은 이 녀석과 한 번 놀아보자!

책에서는 그동안 MS SQL Server에 기본적으로 제공되었다는 샘플 데이터베이스, Northwind를 사용하더군요. 그러나 SQL Server 2005에는 없습니다 -_- 그래서 별도로 찾아서 받아야 합니다. 수많은 온라인 강좌와 책에서 많이 사용되는 Northwind를 왜 SQL Server와 떼어놓은 것인지... 흑흑

1. Northwind 샘플 데이터베이스(Sample Database) 받기

Microsoft 사이트에서 받을 수 있습니다. 끗.

이라고 하면 저를 저주하겠죠. 저는 친절하니까 링크를 걸어 드립니다. Northwind와 Pubs 예제 데이터베이스 받기.

받아서 설치하면 시작 메뉴에

이런 링크가 생기고, 이것을 클릭하면
이 폴더가 나타납니다. 왼쪽 맨 위에 있는 instnwnd 파일을 실행하면 Northwind 데이터베이스가 생성되고, 그 오른쪽의 instpubs를 실행하면 Pub 데이터베이스가 생성됩니다. 현재 저는 SQL Server 2005 Express가 설치된 상태에서 이 작업을 하고 있다는 것을 기억해 주세요.

혹시 instnwnd을 더블클릭했을 때 메모장이 열린다면 SQL client (MS SQL Server Management Studio Express)를 설치한 다음에 실행해보세요 :)


2. SQL Server Express Client Tool 받기

SQL Server 2005 Express에는 클라이언트 도구가 별도로 없기 때문에 클라이언트가 필요하다면 추가로 받아야 합니다. 가벼운 만큼 없는 것도 많은 Express죠?

클라이언트 도구도 마이크로소프트 사이트에서 받을 수 있습니다. 끗.

네, 바로 링크 드립니다. -_-; SQL Server Express 관련 툴 다운로드.

빨간 사각형 부분이 클라이언트 툴입니다. 데이터베이스의 값을 조회하거나 간단한 쿼리를 돌려볼 수 있고 사용자 설정, 보안 설정 등을 할 수 있습니다.


3. 이제 DB에 연결해보자

자 이제 대충 만든 프로그램으로 SQL에 설치한 Northwind DB에 접속해 보려고 하는데... 역시 안됩니다!

절 반겨주는 에러 메시지.

서버에 연결하는 동안 오류가 발생했습니다. SQL Server 2005에 연결하는 경우 SQL Server 기본 설정에서는 원격 연결을 허용하지 않기 때문에 발생한 오류일 수 있습니다.

위 에러 메시지는 두 가지 경우에 발생하는 것 같습니다.

1. SQL Server 설정에 원격 연결이 막혀 있고, 외부에서 접속하려고 했다. (원격 연결을 허용하는 방법)
2. SQL connection String이 잘못 되었다.

저는 2의 경우라 1의 경우는 링크로 대체합니다. 혹시 링크에 문제가 발생할 수 있으므로 1의 해결책을 간단히 소개하자면, SQL Server 구성 관리자에서 TCP/IP 속성을 사용으로 바꿔주면 된다고 합니다.


이제 저의 경우였던 2번에서의 해결책입니다.

사실 SQL Express를 설치할 때 인스턴스 이름을 선택할 수 있는 메뉴가 있는데, 이것을 기본 인스턴스로 선택했다면 2번의 경우는 발생하지 않는 것으로 보입니다. 기본적으로 Express 버전은 명명된 인스턴스로 생성이 되는데, 이 경우에는 DB에 접속할 때 Data Source에 "서버이름\DB인스턴스이름"을 적어주어야 합니다. \를 인식시키기 위해 @"서버이름\DB인스턴스이름"이나 "서버이름\\DB인스턴스이름"의 형식을 사용해야겠죠.

SQL Express의 기본적인 인스턴스이름은 SQLExpress입니다. 여러개 있을 경우에는 뒤에 숫자가 하나씩 추가된다고 하는데, 어쨌든 기본적으로 localhost에서 사용할 경우 다음과 같이 작성하면 됩니다.

Data Source = localhost\SQLExpress;

이제 잘 되나 했더니 이번엔 다음과 같은 오류 메시지가 나오더군요.

사용자 xx이(가) 로그인하지 못했습니다. 이 사용자는 트러스트된 SQL Server 연결과 관련되어 있지 않습니다.

원인을 살펴보니 SQL Server의 인증 방법이 Windows 인증(윈도우인증)이기 때문이더군요. 어떤 속성으로 되어 있는지는 위에서 설치한 Client 프로그램에서 확인할 수 있습니다. 서버에서 오른쪽 클릭-속성을 클릭하세요.

이 문제를 해결하기 위해서 자료를 찾아보니 SQL Server 및 Windows 인증을 같이 쓰는 방법이 거의 대부분이더군요; 저는 그동안

- SQL Server Authentication
String strConn = "Data Source=localhost\\SQLEXPRESS; Database=Northwind; USER=sa; PWD=qwer";

이런 식으로 SQL Server 인증을 주로 이용했기 때문에 윈도우 인증이 궁금해 졌습니다. 그리고 호기심으로 인한 많은 고생 끝에 윈도우 인증에 성공할 수 있었습니다.

Connection String에 User, PWD 대신 다음의 구문을 추가하면, 자신이 윈도우에 로그인한 계정으로 SQL Server에 접속할 수 있습니다.

- for Windows Authentication
String strConn = "Data Source=localhost\\SQLEXPRESS; Database=Northwind; Integrated Security=SSPI";

그리고 마침내!

간단하지만^^; 뿌듯한 결과가 나왔네요.

제가 고생한 정보가 여러분의 문제를 해결하는데 도움이 되길 빕니다. :)
Good luck~

이 글을 작성하는데 많은 도움이 된 링크들
- SQL Server 2005 Express 주무르기
- MS SQL Server 2005 Express 설치하기(2)

핑백

  • Rising 炫 : 90,000 hit 2008-01-30 00:34:13 #

    ... 올라옵니다 ㅡ.ㅡ;; 그래서 방문자들이 보는 글들도 매우 다양하죠; 게임이야기 WoW, 우레폭풍(썬더퓨리)의 제작 삼국지 10, 소시민 천통기 프로그램 이야기 SQL Server 2005 Express와 춤을 추다 영화 이야기 클로버필드, 새로움 혹은 불친절함 일상적인 이야기 지하철 정기 승차권에 또 당했다 OTL 해외 토픽 핸드폰 판매원의 오페라, Paul Pot ... more

  • 블로그를 살리자~!!! : SQL Server 2005 Express 사용하기 2008-04-10 22:49:19 #

    ... 연결이 되었습니다. MS SQL Server 2005에서 localhost 연결 오류|작성자 소심비형SQL Server 2005 Express와 춤을 추다 쿼리로 연결하거나 SQL Server 인증 사용은 인터넷을 찾아보시면 자료를 찾아보실수있습니 ... more

덧글

  • mcdasa 2008/01/04 01:22 # 삭제

    오라클 알려주세연~ 오라클~
  • 그라드 2008/01/04 02:02 #

    * mcdasa // 오라클은 집에 안 깔려 있어서 몰라연~
  • 2010/01/27 23:56 # 삭제 비공개

    비공개 덧글입니다.
  • 이제시작 2010/10/07 12:32 # 삭제

    안녕하세요~ 정말 좋은 자료 잘 보았습니다~

    그런데 중간에 northwind 데이터 베이스 설치하는 부분의 설명을 따라하다가 잘 안되는 것이 있어서요~.. ^^;
    실제로 instnswd.sql 을 더블클릭해보면 (저도 ms sql server 2005 express 만 설치되어 있었거든요^^;) 그냥 메모장에서 파일이 열리고 스크립트가 실행되지 않네요ㅜㅜ
    그래서 바로 아래쪽에 설명해주신 SQL client (MS SQL Server Management Studio Express) 를 설치하고 나서 해보니 그제서야 스크립트가 실행되었습니다 ~~ ^ ^
    생각해보니 sql server 만 있는 상태에서는 쿼리들이 있는 instnswd.sql 스크립트를 실행할 수가 없겠더군요. ^^ 그래서 SQL client 가 없는 상태에서는 더블클릭으로 설치가 되지 않았던 것 같습니다. ^^;

    혹시나 처음 해 보시는 분들이 instnswd.sql 더블클릭을 하셨는데, 메모장에서 열려 버리는 일이 생기실지도 모른다는 생각에 글을 올려봅니다. ^^;
  • 그라드 2010/10/07 17:58 #

    그렇군요~ 관련 부분을 추가해두겠습니다 :)
  • 최병문 2011/01/13 10:56 # 삭제

    감사합니다!

    퍼갈께용~~
※ 이 포스트는 더 이상 덧글을 남길 수 없습니다.