8.9. mysqlaccess — 접속 권한 검사를 위한 클라이언트
mysqlaccess는 Yves Carlier가 MySQL 용으로 제공한 진단 프로그램이다. 이것은 호스트 이름, 사용자 이름, 그리고 데이터 베이스 컴비네이션 (combination)에 대한 접속 권한을 체크한다. Mysqlaccess는 user, db, 그리고 host 테이블만을 사용해서 접속을 체크한다는 점을 알아두자. 이것은 tables_priv, columns_priv, 또는 procs_priv 테이블에서 지정이 된 테이블, 컬럼, 또는 루틴 권한 등은 체크를 하지 않는다.
mysqlaccess을 다음과 같이 호출한다:
shell> mysqlaccess [host_name [user_name [db_name]]] [option]
mysqlaccess은 아래의 옵션을 지원한다:
- --help, -?
도움말 메시지를 출력하고 종료.
- --brief, -b
싱글-라인 표 형식으로 레포트를 생성한다.
- --commit
임시 테이블에서 원본 그랜트 테이블로 새로운 접속 권한을 복사한다. 새로운 권한이 효력을 갖도록 하기 위해서는 그랜트 테이블을 플러시 해야 한다. (예를 들면, mysqladmin reload 명령어를 실행한다.)
- --copy
원본 그랜트 테이블에서 임시 테이블을 다시 로드한다.
- --db=db_name, -d db_name
데이터베이스 이름을 지정한다.
- --debug=N
디버그 레벨을 지정한다. N 은 0에서 3 사이의 정수가 된다.
- --host=host_name, -h host_name
접속 권한에서 사용되는 호스트 이름.
- --howto
mysqlaccess를 사용하는 방법에 대한 예문을 보여준다
- --old_server
서버가 마치 전체적으로 WHERE 구문을 처리하는 방법을 모르는 구형 MySQL 서버(3.21 이전 버전)인 것으로 추정한다.
- --password[=password], -p[password]
서버에 접속을 할 때 사용할 패스워드. 명령문에서 --password 또는 -p 옵션 다음에 password를 생략하면, 프롬프트가 나오게 된다.
명령문 라인에 패스워드를 지정하는 것은 불안정할 수 있다. Section 5.8.6, “패스워드 보안 유지”를 참조할 것.
- --plan
향후에 발표될 버전에 대한 아이디어를 보여 준다.
- --preview
임시 그랜트 테이블을 변경 시킬 경우의 권한 변경 내역을 미리 보여준다.
- --relnotes
릴리즈 노트를 보여준다.
- --rhost=host_name, -H host_name
주어진 호스트 상의 MySQL 서버와 접속한다.
- --rollback
임시 그랜트 테이블에서 일어난 가장 최근의 변경을 복원(Undo) 시킨다.
- --spassword[=password], -P[password]
슈퍼 유저로 서버에 접속을 할 때 사용하는 패스워드. 명령문에서 --password 또는 -p 옵션 다음에 password를 생략하면, 프롬프트가 나오게 된다.
명령문 라인에 패스워드를 지정하는 것은 불안정할 수 있다. Section 5.8.6, “패스워드 보안 유지”를 참조할 것.
- --superuser=user_name, -U user_name
슈퍼 유저로 접속을 하기 위한 사용자 이름을 지정한다.
- --table, -t
테이블 포맷으로 레포트를 생성한다.
- --user=user_name, -u user_name
접속 권한에 사용할 사용자 이름.
- --version, -v
버전 정보를 출력하고 종료.
사용하고 있는 MySQL 배포판이 표준 설치 위치가 아닌 곳에 설치되어 있다면, 반드시 mysqlaccess이 mysql 클라이언트를 찾고자 하는 위치를 변경 시켜야 한다. 대략 18번째 라인에 있는 mysqlaccess 스크립트를 다음과 같이 편집한다:
$MYSQL = '/usr/local/bin/mysql'; # path to mysql executable
mysql이 실제로 저장되어 있는 위치를 반영할 수 있도록 경로를 변경한다. 이렇게 변경하지 않고 mysqlaccess을 구동시키게 되면, Broken pipe 에러가 발생한다.