The Pursuit of Happyness

MSSQL 을 사용할 일이 생겨서 간단한 설치 과정을 적어 봅니다.


MSSQL을 테스트할 때는 개발자용으로 설치를 하거나 express 버전 (10GB 제한) 으로 설치해서 사용할 수 있습니다.


Express 버전은 아래의 링크에서 런처 파일을 다운로드 할 수 있습니다. 


https://www.microsoft.com/ko-kr/sql-server/sql-server-editions-express


테스트 환경 : Windows 10 Pro (1709) / MSSQL EXPRESS 2017 


런처 파일을 다운로드 후 실행을 하면, 다시 실제 설치 파일을 다운로드하고 MSSQL 서버를 설치할 수 있습니다.


MSSQL은 서버 로그인 방식은, 윈도우 기반의 네트워크에서 사용하는 인증방식으로 로그인을 하는 Windows 인증 방식과 ID / Password 를 입력해서 로그인하는 SQL 서버 인증방식이 있습니다. 필요에 따라 Windows 인증 혹은 SQL 서버 및 Windows 인증을 선택해서 사용할 수 있습니다.


서버 설치 후에는 클라이언트에 해당하는 MSSQL Server Management Studio 를 추가로 설치합니다.


-----------------------------


MSSQL 서버는 기본 설치시 네트워크 연결이 허용되지 않습니다. 따라서 새 사용자를 추가하기 위해서는 다음의 과정으로 네트워크 연결을 허용해 줍니다.


  1. SQL 서버 구성 관리자 실행 (SQL Server Configuration Manager)
  2. (좌측메뉴) SQL Server 네트워크 구성 > SQLEXPRESS에 대한 프로토콜 
  3. (우측메뉴) TCP/IP 를 사용으로 변경
  4. (좌측메뉴) SQL Server 서비스 선택 
  5. (우측메뉴) SQL Server (SQLEXPRESS) 선택
  6. 다시시작


참고로 TCP/IP 항목에서 바인딩된 IP 주소나 포트를 체크할 수 있습니다. 

(Windows 10 에서 MSSQL EXPRESS 버전을 설치한 경우 기본 1433 포트가 아닌 임의의 포트로 설정이 됩니다. 시스템 권한의 문제인지 EXPRESS 라서 그런건지는 잘 모르겠습니다. 추후에 알게되면 업데이트 하도록 하겠습니다.)


그리고 나서 인증 모드를 체크합니다.

  1. MSSQL Server Management Studio 실행
  2. 설치시 입력한 인증 방식을 이용해서 로그인
  3. 연결된 서버의 개체 탐색기에서 서버를 마우스 오른쪽 클릭해서 속성을 선택
  4. 페이지 선택에서 보안을 선택
  5. 오른쪽 영역에서 서버 인증 방식 확인 (SQL Server 및 Windows 인증 모드)
  6. 확인


사용할 데이터 베이스를 생성합니다.

  1. MSSQL Server Management Studio 에서 개체 탐색기 > 서버 > 데이터베이스 오른쪽 클릭
  2. 새 데이터베이스 선택 후 적당한 이름을 입력하고 확인


유저를 생성합니다.

  1. MSSQL Server Management Studio 에서 개체 탐색기 > 서버 > 보인 > 로그인 오른쪽 클릭
  2. 새 로그인 선택 후 
  3. 페이지 선택에서 일반 선택
  4. SQL 서버 인증
  5. 로그인 이름에 사용할 아이디 입력
  6. SQL 서버 인증 선택
  7. 암호 / 암호 확인 입력
  8. 기본 데이터베이스 설정
  9. 페이지 선택에서 사용자 매핑 선택
  10. 사용할 데이터 베이스 체크
  11. 데이터베이스 역할에서 필요한 권한을 할당
  12. 확인


생성된 유저는 MSSQL Server Management Studio 에서 로그인이 되는지 확인해 봅니다.

외부에서 접속하는 경우 방화벽 설정도 체크해 봅니다.



Summary 

설치 후 확인 사항
  1.  TCP/IP 연결 허용 여부 및 바인딩 된 IP 와 포트
  2. SQL 서버 로그인 인증 방식
  3. 데이터베이스 권한 등..
  4. 설정 변경 후 SQL 서버 재시작 필요
  5. 기타 방화벽 설정 등..





Comment 0

예전에 node.js에서 Oracle DB를 연결해서 사용하는 프로젝트를 해봤었는데, Oracle 이 node.js 를 제대로 지원하지 못한다는 느낌을 강하게 받았었습니다.


그때는 node.js oracledb 모듈을 설치할 때, 컴파일 과정이 들어가면서 의존성이 있었기 때문에 은근히 번거로웠었는데, oracledb 2.0 부터는 그러한 과정들이 필요 없게되어서 상당히 편리해졌습니다.


다만 새로운 모듈의 특성상 Oracle 혹은 instant client 을 설치하고, 라이브러리 경로를 설정해 줘야지만 제대로 동작합니다. node.js oracledb 와 Oracle 혹은 instant client 의 설치순서는 상관이 없습니다. 런타임 시점에 라이브러리 경로만 인식되면 됩니다.


또 다른 장점으로는 상당히 많은 수정을 통해서 메모리 관리 등에서 훨씬 안정적인 모듈이 되었다는 것입니다.


--


이쯤에서 node.js oracledb 모듈을 설치해 보겠습니다.


테스트 환경은 CentOS 7.4.1708 , node.js 6.12.3 입니다.


1. 적당한 폴더를 생성합니다.

# mkdir test 


2. 폴더에서 node 프로젝트를 생성합니다. 프로젝트 정보는 적당히 입력합니다.

# npm init 


3. 다음 명령어로 oracledb 모듈을 설치합니다.

# npm install --save oracledb 

현재 2.0.15 버전으로 설치가 됩니다.


4. instant client 를 설치합니다. Oracle 다운로드 페이지에서 적당히 다운로드 받습니다.

http://www.oracle.com/technetwork/database/database-technologies/instant-client/downloads/index.html

아래 명령어로 설치를 합니다.

# rpm -ivh  oracle-instantclient12.2-basic-12.2.0.1.0-1.x86_64.rpm

혹은 yum install 명령어를 이용해도 설치가 됩니다.


5. 환경변수를 설정합니다.

# vi /etc/environment


다음의 두줄을 추가합니다 원래 instant client 만 설치할 경우 "/usr/lib/oracle/12.2/client64/network/admin" 경로는 존재하지 않는데, XE 등을 설치시의 tns 설정경로와 비슷하게 하기 위해서 "network/admin" 폴더를 생성해 주었습니다.

TNS_ADMIN=/usr/lib/oracle/12.2/client64/network/admin

LD_LIBRARY_PATH=/usr/lib/oracle/12.2/client64/lib


6. tnsnames.ora 파일을 생성합니다.

# touch /usr/lib/oracle/12.2/client64/network/admin/tnsnames.ora 

생성한 파일을 편집해서 tns 정보를 입력합니다.


7. oracledb에 연결해서 테스트하는 예제들 입니다.

https://github.com/oracle/node-oracledb/tree/master/examples


webapp.js 나 webapppromises.js 파일을 참조하시면 pool 설정 등에 대한 예시를 볼 수 있습니다.



Comment 0

티스토리 툴바