보안 엔지니어링/데이버베이스 관리

MariaDB 인증 방식: TCP/IP와 소켓 방식 차이 – Access denied 오류 해결

보안프리세일즈 2025. 2. 24. 09:00
반응형

MariaDB에서 인증은 주로 TCP/IP 방식UNIX 소켓 방식으로 이루어집니다. 이 글에서는 두 인증 방식의 차이와 MariaDB 접근 오류 시 해결 방법을 설명합니다.


1. TCP/IP 방식과 소켓 방식의 차이

1-1. TCP/IP 방식

  • 네트워크를 통해 MariaDB에 접속하며, 127.0.0.1 또는 서버의 IP 주소를 사용.
  • 원격 접속 및 네트워크 기반 연결 시 주로 사용.
  • 명령어 예시:
  • mysql -u user -p -h 127.0.0.1

1-2. UNIX 소켓 방식

  • localhost로 접속 시 사용되며, 네트워크 없이 소켓 파일(/var/lib/mysql/mysql.sock)을 통해 직접 연결.
  • 접속 속도가 빠르고 보안성이 뛰어나며, 동일 서버 내 로컬 접근에 최적화.
  • 명령어 예시:
  • mysql -u user -p -h localhost

2. MariaDB 접근 오류 원인

  • 동일 사용자라도 TCP/IP 방식소켓 방식은 서로 다른 사용자로 인식.
  • 각 방식에 맞는 별도 권한을 설정해야 함.

3. 오류 해결 방법

각 단계에 대한 설명:

  • TCP/IP 접근 권한 부여: 네트워크를 통해 접근 시 필요한 권한을 설정하는 명령어로, 원격 연결 시 반드시 필요합니다.
  • 소켓 접근 권한 부여: 로컬 환경에서 소켓을 통한 접근을 허용하기 위한 명령어입니다.
  • 접근 방법 확인: 현재 MariaDB에 등록된 사용자와 접근 호스트를 확인하여 문제를 진단할 때 사용합니다.

3-1. TCP/IP 접근 권한 부여

GRANT ALL PRIVILEGES ON *.* TO 'user'@'127.0.0.1' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;

3-2. 소켓 접근 권한 부여

GRANT ALL PRIVILEGES ON *.* TO 'user'@'localhost' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;

3-3. 접근 방법 확인

SELECT User, Host FROM mysql.user;

4. UNIX 소켓 방식 추가 설명

  • UNIX 소켓은 네트워크 없이 빠르고 안전한 파일 기반 통신 방식.
  • 데이터베이스와 애플리케이션이 직접 연결하며, 로컬 환경에서 주로 사용.
  • 보안 장점: 네트워크를 사용하지 않아 외부 공격에 노출될 위험이 적으며, 방화벽 규칙 설정이 필요 없습니다.
  • 제한사항: 동일한 서버 내에서만 사용 가능하며, 원격 접속에는 사용할 수 없습니다.

5. 결론

MariaDB에서 TCP/IP와 소켓 방식은 인증 방식이 다르며, 각 방식에 맞는 권한 설정이 필요합니다. 이를 이해하고 설정해야 Access denied 오류를 방지할 수 있습니다.

반응형