MariaDB 기본계정 및 기본 데이터베이스
MariaDB의 설치와 함께 생성되는 데이터파일에는 기본적으로 몇 개의 MairaDB 서버의 사용자 계정도 함께 만들어진다.
기본계정
MariaDB를 설치하면 아래와 같은 Database 들이 생성된다.
- information_schema
- mysql
- performance_schema
- test
mysql 데이터베이스는 MaraiDB 서버의 사용자 인증 정보나 스토어드 프로그램과 이벤트 정보 그리고 타임 존이나 복제에 관련된 정보들이 저장되는 기본 데이터베이스이다.
그래서 mysql 데이터베이스는 관리자 이외의 사용자가 접근하도록 허용해서는 안되며, 가능하면 직접 데이터를 변겨해서는 안된다.
informatioin_schema 데이터베이스의 테이블들은 실제 디스크에 데이터 파일을 가진 테이블이 아니라 MariaDB 서버가 시작되면서 모든 데이터베이스와 테이블 그리고 컬럼의 정보와 스토어 프로그램과 같은 메타 정보들을 메모리에 읽어들이는데, 그 정보들을 테이블 형태로 접근할 수 있도록 해주는 데이터베이스이다.
그리고 스키마/프로시저/함수/인덱스/통계정보까지 확인할 수 있다.
performance_schema 데이터베이스는 요청된 쿼리들을 MairaDB 서버가 처리할 때 발생하는 각종 이벤트와 lock 그리고 lock 대기 현상들을 숫자로 기록하는 테이블들이 저장되어 있다. performance_schema 데이터베이스의 테이블들 또한 디스크에는 테이블의 구조만 저장되어 있으며, 실제 데이터는 모두 메모리상에서 관리되며 MariaDB 서버가 재시작되면 모두 초기화된다.
test 데이터베이스는 말 그대로 테스트용으로 사용하는 데이터베이스이다. 데이터베이스 내부에 어떠한 테이블도 가지고 있지 않다.
디폴트로 MariaDB 서버의 권한 정보에 "test" 라는 단어가 들어간 데이터베이스는 누구든지 볼 수 있는 권한이 설정되어 있다. 그래서 서비스용 MariaDB에서는 이 권한을 삭제하는 것이 좋다.
For example :
sql> SELECT * FROM mysql.user\6
sql> SELECT * FROM mysql.db\6
sql> DELETE FROM mysql.user WHERE USER='' AND host='%' AND db LIKE 'test%';
sql> DELETE FROM mysql.db WHERE USER='' AND host='%' AND db LIKE 'test%';
sql> FLUSH PRIVILEGES;