mysql 접속시 db name 명시를 반드시 하게 하는 방법
글쓴이: litnsio2 / 작성시간: 목, 2006/09/07 - 10:10오전
제가 관리하는 소모임 서버에 문제가 발생했습니다.
사용자 패스워드 변경을 하는데, 콘솔에서
set password=password('new-pass');
하면 변경되지 않습니까.?
그런데, 콘솔 접속시 "mysql -u foo -p"와 같은 식으로 db이름을 명시하지 않고
사용자 패스워드를 변경하니, 모든 유저의 패스워드가 일괄적으로 변경되었습니다.
하지만, "mysql -u foo -p foo"와 같은 식으로 dbname 까지 명시를 해주고
앞서 말한 방법으로 패스워드를 변경하면 해당 사용자의 패스워드만 변경합니다.
당연히 foo 는 루트유저가 아닌 일반유저이구요.
전에 mysql 접속시 dbname을 명시하지 않으면 접속을 거부하게 설정해놓은 것을
어디선가 보았는데, 검색해도 잘 나오지가 않네요.
혹시 이 부분을 설정하려면 어느곳을 건드려야 하는지, 혹은 참조자료라도 알려주시면
캄사하겠습니다..~
Forums:
질문하신 내용은 잘
질문하신 내용은 잘 모르겠습니다만..
뭔가 이상한데요? db를 선택하지 않았다고 해서 모든 사용자의 암호를 바꿀 것 같지 않은데.. -o-
예.. 그렇긴 한데요. 실제로 그런 현상이 발생했습니다.. -_-;;
사용자중에서 mysql 접속시 dbname 을 명시하지 않고 접속을 한 후,
password 변경을 했더니, user 테이블의 모든 패스워드가 변경되었습니다..
질문내용을 다시 정리해드리자면,, 접속 커맨드 중에서 다음과 같은 형식을 제한하고,
mysql -u foo -p
아래의 형식과 같이 사용하려는 dbname 을 명시해 주어야만 콘솔 접속을 허용하는 셋팅방법이
있는지 궁금합니다.
mysql -u foo -p foo_db
디비사랑넷에도.. 답변이 아직 없는것 같네요. 음. mysql forum 에 직접 물어봐야겠습니다..
기본적(?)으로인지
기본적(?)으로인지 아닌지 확실하지 않지만, 일단 그냥 접속하게 되면,
mysql 데이타베이스가 선택되는 경우가 있습니다.
그상황에서 mysql데이타베이스에 update권한이 있을 경우 전부 업데이트돼버리겠죠...
mysql디비의 db 테이블과 user테이블의 권한등을 적절히 설정하시는게 옳다고 봅니다.....
내 마음속의 악마가 자꾸만 나를 부추겨.
늘 해왔던 것에 만족하지 말고 뭔가 불가능해 보이는 것을 하라고 말야.
내 마음속의 악마가 자꾸만 나를 부추겨.
늘 해왔던 것에 만족하지 말고 뭔가 불가능해 보이는 것을 하라고 말야.
움.. 그런데 재미있는 사실은..
mysql 에 접속(db이름 명시하지 않고 접속) 후 status 명령을 해보면 아래와 같이 나옵니다.
--------------
mysql Ver 14.12 Distrib 5.0.18, for pc-linux-gnu (i686) using readline 5.0
Connection id: 13275
Current database:
Current user: dduk@localhost
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: 5.0.18-max
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: latin1
Db characterset: latin1
Client characterset: latin1
Conn. characterset: latin1
UNIX socket: /tmp/mysql.sock
Uptime: 2 days 6 hours 8 min 13 sec
Threads: 1 Questions: 228393 Slow queries: 0 Opens: 0 Flush tables: 1 Open tables: 64 Queries per second avg: 1.172
--------------
아무튼 답변 감사합니다...
http://janbyul.com
댓글 달기