mariadb-secure-installation 명령어는 MariaDB 데이터베이스 서버를 보다 안전하게 설정하는 데 사용되는 스크립트입니다. 보안 조치를 취할 수 있는 옵션을 제공합니다.
- root 사용자의 비밀번호 설정
- 익명 사용자 계정 삭제
- root 사용자의 원격 접속 비활성화
- 테스트 데이터베이스 삭제 및 접근 제한
- 시스템 테이블의 권한 재부여
수행된 조치들은 데이터베이스 서버를 외부 공격과 무단 접근으로부터 보호하는 데 중요한 역할을 합니다. 이 스크립트는 일반적으로 MariaDB 패키지를 설치한 후, 최초 1회 실행을 권장하는 단계 중 하나로 취급됩니다.
명령어를 입력하면 아래와 같이 여러가지 질문을 받을 수 있습니다.
하나씩 확인을 해보겠습니다.
Unix 소켓 인증 방식
Switch to unix_socket authentication [Y/n] y
Enabled successfully!
Reloading privilege tables..
... Success!
Unix 또는 Unix-like 시스템에서 사용되는 인증 메커니즘 중 하나입니다. 이 방식은 사용자가 동일한 시스템에서 실행 중인 프로세스간에 데이터를 전송할 때 사용됩니다.
Unix 소켓 인증 방식의 핵심은, 클라이언트와 서버가 동일한 시스템에서 실행되고 있으며, 따라서 시스템의 사용자 인증 메커니즘을 믿을 수 있다는 것입니다. 클라이언트 프로세스가 서버 프로세스에 연결을 요청할 때, 시스템은 클라이언트 프로세스의 사용자 ID와 그룹 ID를 자동으로 서버에 전달합니다. 서버는 이 정보를 사용하여 클라이언트의 신원을 확인하고 요청을 승인하거나 거부합니다.
이 방식의 장점은 복잡한 인증 절차 없이도 안전하게 프로세스 간 통신을 할 수 있다는 것
Change the root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
... Success!
Remove anonymous users? [Y/n] y
... Success!
Disallow root login remotely? [Y/n] y
... Success!
Remove test database and access to it? [Y/n] y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
사실상 유닉스 소켓 방식만 제일 어려운 선택이 되겠고 아래부터는 root 비밀번호의 변경여부?, 익명 사용자 사용여부, root 사용자의 원격 접속여부
테스트 데이터베이스 생성여부 등 간단한 질문만 있습니다.
Reload privilege tables now? [Y/n]
MariaDB나 MySQL과 같은 데이터베이스에서 권한 관련 변경 사항을 적용할 때 나오는 질문으로
데이터베이스의 권한 테이블은 사용자의 권한 정보를 담고 있으며, 이 테이블에 변동이 생기면 변경 사항이 적용되도록 테이블을 다시 불러오는(reload) 작업이 필요합니다. 따라서 “Reload privilege tables now?”라는 질문에 ‘Y’를 선택하면, 이전에 수행한 권한 관련 설정이 즉시 적용됩니다.