[python] PyMySQL을 이용하여 데이터베이스의 접근 권한을 설정하는 방법을 알아본다.

PyMySQL은 Python에서 MySQL 데이터베이스와 상호 작용하기 위한 모듈입니다. 이 모듈을 사용하여 데이터베이스에 접근할 때, 접근 권한을 설정하는 방법을 알아보겠습니다.

1. PyMySQL 설치하기

PyMySQL을 사용하기 위해서는 먼저 모듈을 설치해야 합니다. 아래의 명령어를 사용하여 PyMySQL을 설치합니다.

pip install PyMySQL

2. 데이터베이스 접속하기

PyMySQL을 사용하여 데이터베이스에 접속하려면, connect() 함수를 사용해야 합니다. 이 함수를 사용하여 데이터베이스 서버의 주소, 포트 번호, 사용자 이름 및 비밀번호 등을 전달합니다.

import pymysql

connection = pymysql.connect(
    host='localhost',
    port=3306,
    user='username',
    password='password',
    db='database_name'
)

위의 예제에서는 localhost를 호스트로 사용하고, 3306 포트로 접속합니다. 사용자 이름과 비밀번호는 데이터베이스에 접근할 수 있는 사용자의 정보를 입력해야 합니다. 마지막으로 데이터베이스 이름을 지정하여 db 매개변수에 전달합니다.

3. 접근 권한 설정하기

데이터베이스에 접근하기 전에 접근 권한을 설정해야 합니다. 이를 위해서는 데이터베이스 서버에서 유저를 생성하고 권한을 할당해야 합니다.

다음은 데이터베이스 서버에 새로운 유저를 생성하고, 모든 데이터베이스에 대한 접근 권한을 부여하는 예제 코드입니다.

import pymysql

connection = pymysql.connect(
    host='localhost',
    port=3306,
    user='root',
    password='password'
)

# 데이터베이스 접속 후 유저 및 권한 설정
with connection.cursor() as cursor:
    cursor.execute("CREATE USER 'new_user'@'localhost' IDENTIFIED BY 'new_password'")
    cursor.execute("GRANT ALL PRIVILEGES ON *.* TO 'new_user'@'localhost'")
    cursor.execute("FLUSH PRIVILEGES")

위의 코드에서는 CREATE USER 문을 사용하여 새로운 유저를 생성하고, GRANT ALL PRIVILEGES 문을 사용하여 모든 데이터베이스에 대한 접근 권한을 할당합니다. 마지막으로 FLUSH PRIVILEGES 문을 사용하여 변경사항을 적용합니다.

참고 자료