| - mysql 데몬을 유닉스의 root
사용자로
시작하지 말자. mysqld 는 다
른 사용자가
실행할 수 있다. 또한 보안을 더 엄격
하게 하기
위해 mysql이라는 유닉스 사용자를 만들 수 있다.
다른
유닉스 사용자로 mysqld를 실행하면 user 테이블에서
root 사용자
이름을 바꿀 필요가 없다.
mysqld를 다른 유닉스
사용자가 시작하기 위해 mysql.server 스크립트를 수정하면
된다. 일반적으로
su 명령을 사용한다.
- mysqld를 실행할 수 있는
사용자만이
데이터베이스 디렉토리에 읽기/쓰기 권한을 가지고
있는지 확인.
- 모든 사용자에게 process
권한을 주지
말자. mysqladmin processlist 을 출력하면
현재
실행하는 쿼리의 내용을 볼 수 있다.
그러므로
이러한 명령을 실행할 권한이 있는
사용자는
다른 사용자의
UPDATE user
SET password=PASSWORD(_'no_secure') 질의를 볼 수 있
다. mysql은
process 권한을 가진 사용자를 위해 추가적인(extra)
연결을 저장한다. 그래서
mysql root 사용자는 모든 일반적인 연결이 사용되었어
도 로그인하고
점검을 할 수 있다.
- 모든 사용자에게 file 권한
을 주지
말자. 이러한 권한이 있는 사용
자는 mysqld
대몬의 권한이 있는 파일 시스템의 어느 곳에라도
파일을
저장할 수 있다. 좀 더 안전하
게 하기 위해
SELECT ... INTO OUTFILE 로 생성되는 모든 파일은 모
든 사용자가
읽기만 할 수 있으며 이미 존재하는
파일을 덮어씌울
수 없다.
(** file 권
한은 LOAD DATA INFILE ,
SELECT .. INTO OUTFILE 문을 이용하여 서버에 파일을
저장하고
읽을 수 있는 권한을 허용한다. 이러
한 권한을
가진 사용자는 mysql 서버가 읽고 쓸 수 있는 파일을 읽고
쓸 수 있는
권한이 허용된다.
일반 사용자에게 이런 권한을
줄 필요는 없다. 필요한 부분
만 권한을
주는 것이 좋다. 권한을 남용말자.
**)
- DNS 를 신뢰하지 못한다면
승인 테입르에서
호스트이름 대신 IP를 사용하자.
기본적으로
mysqld 의 --secure 옵션은 호스트이름을 안전하게
한다.
어떤 경우 와일드카드 문자가 포함된
호스트이름
값을 사용할때는 매우 조심해야 한다.
- mysql.server 스크립트에
서 유닉스
root 사용자의 비밀번호를 넣는다면,
이 스크립트는
오직 root만이 읽을 수 있도록 해야 한다.
|