[김성민]님이 남기신 글:
># /usr/local/mysql/bin/mysql -uroot -p 1234
>
>mysql> insert into user values ('localhost','testuser',password('1234'),'N','N','N','N','N','N','N','N','N','N','N','N','N','N');
>
>하면 ok 어쩌구 떨어지고,
>
>mysql> insert into db values('localhost','testdb','testuser','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y',);
>
>하면 또 뭐라고 궁시렁 떨어지고.
>
>mysql> mysqladmin create testdb
>
>이런 순서로 한다음, testuser 로 로그인후 mysql 접속을 했습니다.
>
>mysql> show databases;
>
>하면,
>
>testdb 말고도, mysql, test 등의 기존에 있는 db 들이 보이는데, .. 그러니까 testuser 라는 mysql 사용자를 추가
>하면서 그 사용자에게 testdb 라는 db 를 만들어 주었으면 testdb 만 보여야 하는게 아닌가 해서 말입니다.
>
>권한 설정을 잘못 한것인가요?
========================================
좀 오래된 글인데
잘못 답변해서 정정해서 다시 올립니다.
mysql을 실행할때 일반적으로 safe_mysqld 스크립트를 실행합니다.
mysqld 옵션을 보면 --safe-show-database 이라는 옵션이 있습니다.
이 옵션은 권한이 없는 유저에게는 모든 데이터베이스를 보여주지
못하는 옵션입니다.
# /usr/local/mysql/bin/safe_mysqld --safe-show-database &
와 같이 mysql을 시작하면 됩니다.
그 외에 '--skip-show-database' 옵션도 있는데 이 옵션은
무조건 'SHOW DATABASES' 명령을 사용하지 못하게 하는 옵션입니다.
후자보다는 전자가 더 형평성에 맞는것 같군요.. |