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

SSH 서버에 접속할 때, 비밀번호 입력 모드가 매우 늦게 뜨거나, 입력 후에도 로그인까지 상당히 오랜 시간이 걸리는 경우가 있습니다.

(30초에서 2분정도 걸리는 경우도 있다고 하네요..)


원인을 파악하기 위해서 ssh 접속시 "-vvv" 옵션을 추가하면 ssh 접속을 위해서 주고 받는 정보들이 자세히 나오게 됩니다.

내용을 살펴보면 ssh 접속이 느린 이유가 나오는데요, 대표적인 케이스 두 가지에 대한 해결책을 정리해 보았습니다.


1. GSSAPI 인증문제

SSH 로그인 시에 SSH 클라이언트는 몇 가지 인증 과정을 거치는데요, 그 중에 GSSAPI 인증이라는 단계가 있습니다. 이 과정은 SSH 서버가 GSSAPI 서버에 접속해서 클라이언트의 유효성을 인증받는 과정이 들어가 있는데, 이 과정이 실패할 때 SSH 세션이 시작되는 것이 상당히 지연되기도 합니다. 

해결책은 SSH 설정에서 GSSAPI 인증을 사용하지 않게 해 주는 것입니다.

SSH 설정 파일을 열어서 GSSAPIAuthentication 을 검색합니다.


$ vi /etc/ssh/sshd_config 


해당 항목의 값을 "no" 로 설정합니다.


GSSAPIAuthentication no

 

SSH 서버를 재시작 합니다.


$ systemctl restart sshd


2. 역방향 DNS 조회 문제

SSH 접속이 느려지는 다른 문제로는 역방향 DNS 조희 입니다. SSH 서버가 클라이언트로부터 로그인 요청을 받으면, 서버는 보안상의 이유로 클라이언트의 IP에 대해서 역방향 DNS를 조회합니다. 만약 역방향 조회가 실패하면 timeout 시간 만큼 접속이 늦어집니다.


역방향 DNS 조회 기능을 사용하지 않게 해주기 위해서 설정 파일을 엽니다.


$ vi /etc/ssh/sshd_config 


UseDNS 라는 항목을 검색해서 아래와 같이 해당 항목의 값을 "no"로 설정합니다.


UseDNS no


참고로 제가 설치한 CentOS에서는 "UseDNS yes" 가 주석처리 되어 있었는데, 주석을 풀고 값을 no로 설정했을 때 문제가 해결되었습니다.


SSH 서버를 재시작 합니다.


$ systemctl restart sshd






Comment +0