ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Docker] MSSQL 컨테이너 생성과 테스트 그리고 계정 생성 (MSSQL Docker For MacOS)
    AWS, Infra/docker 2022. 10. 4. 00:02

    [Docker] MSSQL 컨테이너 생성과 테스트 그리고 계정 생성 (MSSQL Docker For MacOS)

     
    맥북에서 개발을 Visual Studio로 개발을 하다가, MSSQL을 설치해야하는 일이 발생했다.
    하지만 MSSQL은 macos에 설치를 할 수 없다. 

    어차피 단순 로컬 개발 목적이고, 이후 필요에 따라서 제거를 하면 좋을 것 같다는 생각에
    Docker 컨테이너로 관리하기로 하였다.
     
     

    이미지 받아오기 (MSSQL) 

    sudo docker pull mcr.microsoft.com/mssql/server:2019-latest
     
    MSSQL의 다양한 이미지를 확인하고 싶다면, 아래 사이트를 참고하시기 바랍니다.
    https://hub.docker.com/_/microsoft-mssql-server
     

     


    컨테이너 기동 

    예제를 위해서 다음과 같은 계정 정보를 사용하였습니다.
    • SA / SQLServer123!
    docker run --name SQLServer -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=SQLServer123!' -e 'MSSQL_PID=Express' -p 1433:1433 -d mcr.microsoft.com/mssql/server:2019-latest
     

    MSSQL 도커 명령어 옵션 

    더보기
    옵션 설명
    ACCEPT_EULA 최종 사용자 사용권 계약에 대한 내용입니다.
    단순하게 Y로 하면 문제가 없을 것 같습니다.
    SA_PASSWORD SA 사용자 암호를 설정합니다.
    (최신 버전의 경우, MSSQL_SA_PASSWORD라고 설정이 되어야 합니다)
    MSSQL_PID SQL Server 버전 또는 제품에 대한 키를 설정하는 부분입니다.
    가능한 값은 아래와 같습니다.
    • Evaluation
    • Developer
    • Express
    • Web
    • Standard
    • Enterprise
    • 제품 키

     

    도커 명령어 옵션 (사용한 명령어) 

    더보기
    옵션 설명
    -p 포트 맵핑
    (컨테이너를 동작 시킨 포트 : 컨테이너 내부 포트)
    -d 데몬으로 동작하도록 설정
    (백그라운드 실행)

     

    위 표는 컨테이너 기동 명령어의 옵션에 대한 설명입니다.

    상세한 내용은 Microsoft 공식 문서에서 확인이 가능합니다.
    https://learn.microsoft.com/ko-kr/sql/linux/quickstart-install-connect-docker?view=sql-server-ver16&pivots=cs1-bash

     


    컨테이너 확인

    # SQLServer Container 접속
    ojaeseong@ojaeseocBookPro ~ % docker exec -it SQLServer /bin/bash
    
    # 아래 명령어로 확인 (연결 확인)
    mssql@48be467e8534:/$ /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "SQLServer123!"
    
    # MSSQL 바이너리 폴더
    mssql@48be467e8534:/$ ls -rtl /opt/mssql/
    
    # MSSQL 로그 폴더
    mssql@48be467e8534:/$ ls -rtl /var/opt/mssql/log/
     
     

    데이터베이스 연결 확인

    맥북을 사용 중이기 때문에, (SSMS) SQL Server Management Service는 사용하지 못합니다.
    이미 깔려있는 Dbeaver를 사용하여 진행하였습니다.
     
     
     

    MSSQL 사용자 생성 명령어

    Dbeaver의 GUI상으로는 MSSQL의 사용자 생성을 제대로 제공하지 못했습니다.
    (아무래도 MS에서 만든 SSMS에 비해서 완벽하지는 못했어요 😭)
    어쩔 수 없이, 질의문으로 처리하였습니다. 
    -- coreuser : 권한을 받을 대상 (사용자 계정)
    -- CodeFirstDB : 권한을 부여할 데이터베이스
    
    -- Create User
    CREATE LOGIN coreuser 
    WITH PASSWORD = 'coreuser123!', 
    DEFAULT_DATABASE = CodeFirstDB
    
    
    -- DB Move
    use CodeFirstDB
    GO
    
    CREATE USER coreuser FOR LOGIN coreuser 
    WITH DEFAULT_SCHEMA=CodeFirstDB;
    
    -- Grant Creating Table
    GRANT CREATE TABLE TO coreuser;
    
    -- Grant Schema Opt
    GRANT CONTROL ON SCHEMA::dbo TO coreuser;
     

    반응형

    'AWS, Infra > docker' 카테고리의 다른 글

    [Docker] 도커 설치, Postgresql 추가  (4) 2020.11.29
Designed by Tistory.