본문 바로가기

Cloud/Middleware

[MariaDB] 10.4 버전 이상 인증 방식 주의 사항, 인증 없이 접근하는 root 사용자

 

 

 

MariaDB 10.6 버전 설치 후,

root로 접속할 때 패스워드 입력을 안 해도 접속이 된다.

 

롸?

 

 

알고 보니, MariaDB 10.4 버전 이상부터는 'Unix Socket' 이라는 인증 방식을 사용하는데

해당 방식이 이미 서버 Root 권한 사용자가 접근을 하니 간편하게 암호 없이 로그인하도록 적용되었다고 한다.

 

관리자 입장에선 어쩌면 보안적으로 취약하다고 느껴지는.. ㅋㅋㅋ

 

 

 

 

 

 

MariaDB에 접속해서 계정에 대해 인증 플러그인 현황을 보자

 

# mysql -u root -p

> Enter password: 

-- P/W 아무렇게 입력해도 접속 됨

 

 

> use mysql;

-- 기본으로 생성되는 mysql 시스템 데이터베이스에 접근

 

> select * from global_priv;

-- 위 사진과 같이, root에 대해 'unix_socket' 인증이 사용되고 있음

 

> ALTER USER root@localhost IDENTIFIED VIA mysql_native_password USING PASSWORD("Password 입력");

-- mysql_native_password 라는 이전의 비밀번호 인증 방식으로 변경함과 동시에 P/W 지정

 

 

 

 

 

변경하면 global_priv 테이블의 root 속성 中 unix_socket 플러그인 내용이 사라져있다.

 

 

 

변경 후, 이제 다시 서버 프롬프트로 나갔다가 접근해서 테스트 해보면

root 패스워드를 입력해야 접근이 되고, 입력하지 않으면 접근에 실패한다.

 

 

 

 

아무래도 설치 후 보안 스크립트 수행 시,

 

unix_socket 사용 여부에 'Y'를 해서 발생하는 내용으로 보이는데

이 부분은 사용자 성향에 따라 지정하면 될 것 같고

기업에서 사용하는 MariaDB는 보안 상 기존 방식으로 변경하는게 안전할 것 같다.