MSSQL Connect to Python (ver. 2025.04)
Page content
개요
- SSMS에 계정 추가
- 계정 추가 후 Python 라이브러리 활용해서 연동
계정 추가
- 먼저 Security(보안) > Logins(로그인)에서 마우스 우클릭 진행
- New Login 선택
- 다음 화면에서 Loing Name은 evan-tester2 명명, Password는 1234로 지정함
- Default Database는 BikeStores로 지정함
- Enforce password policy 체크 박스 해제 (테스트용)
- 왼쪽 메뉴에서 User Mapping 메뉴 선택
- 하단 옵션에서 db_datawriter 옵션 선택
- 왼쪽 메뉴에서 Server Roles 선택
- dbcreator, public, sysadmin 선택
- 선택이 완료되었다면 OK 버튼 클릭
- 사용자 계정이 하나 생성된 것 확인 가능
데이터베이스 수준 역할
- 각 DB 수준의 역할은 공식문서 참조 : 데이터베이스 수준 역할
서버 인증 방식 변경
- 서버에서 마우스 우클릭
- Security 선택 후, SQL Server and Windows Authentication Mode 선택
- 확인 후 SSMS 종료 후 재실행
SQL Server Configuration Manager 구성
- 아래와 같이 접속
TCP/IP 사용
- SQL Server 네트워크 구성 선택
- SQLEXPRESS에 대한 프로토콜 선택 후, TCP/IP 사용 변경
IP 주소, 포트 번호 지정
- IPALL의 TCP 포트번호를 1433으로 지정한다.
- 다시 시작
evan-tester2로 접속
- SSMS 새로 시작 후, 아래 화면과 같이 접속 시도
Python과 MS-SQL 연결
pymssql 설치
- 다음과 같이 명령어 입력 시, 추가 파일 설치 필요 (만약 설치 에러 발생 시)
- Windows 11에서는 설치가 잘 되었는데, Windows 10에서는 설치가 잘 되지 않았다. 그럴 경우 pymssql 버전을 낮춰서 설치 하면 위 프로그램을 굳이 설치할 필요는 없다.
$ pip install pymssql
- 관리자 권한으로 실행
- C++ 관련된 것만 체크 후 설치
- 설치가 완료되면 재부팅을 실시한다.
Sample 코드 작성
- 다음과 같이 코드를 작성한다.
import pymssql
conn = pymssql.connect(
server='127.0.0.1',
port=1433,
user='evan-tester2',
password='1234',
database='BikeStores',
as_dict=True
)
SQL_QUERY = """
SELECT * FROM production.brands;
"""
cursor = conn.cursor()
cursor.execute(SQL_QUERY)
records = cursor.fetchall()
for r in records:
print(f"{r['brand_id']}\t{r['brand_name']}")
- 파일을 실행한다. (파일명 : python_conn_mssql.py)
- 같은 코드를 SSMS에서 실행한 결과다.