WorkaHolic

SQL Server 2005 Express 사용하기

2009. 9. 28. 09:53
반응형

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

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

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

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

이런 링크가 생기고, 이것을 클릭하면
이 폴더가 나타납니다. 왼쪽 맨 위에 있는 instnwnd 파일을 실행하면 Northwind 데이터베이스가 생성되고, 그 오른쪽의 instpubs를 실행하면 Pub 데이터베이스가 생성됩니다. 현재 저는 SQL Server 2005 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)
반응형