RadarURL

데이터베이스
2004.04.16 09:30

mySQL에서 사용자와 권한

조회 수 10627 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

가 크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

가 크게 작게 위로 아래로 댓글로 가기 인쇄
오늘은 mySQL이 어떻게 해서 사용자와 권한을 관리하는지 알아보겠습니다.

이걸 알아야 mySQL에서 테이블도 관리하고, jdbc드라이버로 jsp랑 연동도하고 할 수 있습니다.

처음보시는 분들은 좀 헷갈릴 수도 있겠지만, 두 세 번 보시다보면 쉽게 이해하실 수 있으실겁니다.

자, 그럼 어디 출발해 볼까요?


참, 그전에 한가지 알고 넘어가야 할 부분이 있습니다.

우리는 mySQL이라는 데이타베이스 관리 시스템을 사용합니다만,

그 안에는 이미 mysql이라는 이름의 데이타베이스와 test라는 이름의 데이타베이스가 존재합니다.

데이타베이스 관리 시스템이라는 의미의 mySQL과,

데이타베이스이름에 해당하는 mysql을

혼동하시지 마시라는 얘기를 먼저 드려야겠네요.


그럼 이제 본격적인 설명에 들어가겠습니다.


mySQL에서 사용자 관리는 테이블형태로 합니다.

다시말해 테이블에 사용자를 넣고,빼고,변경하고 하는 것이지요.

mySQL에서 사용자에 관한 테이블은 mysql이라는 데이타베이스의 user와 db라는 테이블입니다.

요번 강좌는 이 user와 db 라는 두개의 테이블에 초점을 맞춰서 읽으시면 됩니다.

먼저 mysql이라는 데이타베이스엔 어떤 테이블이 있는지 한 번 보겠습니다.





6개의 테이블이 나옵니다만, 중요한 것은 user와 db테이블입니다.

이 두가지만 알면 나머지는 저절로 알게되는 부분입니다.


user테이블은 아이디,패스워드,접속호스트와 mysql의 전체 데이타베이스에 대한 권한을 설정합니다.

db테이블은 해당하는 데이타베이스에 대한 해당 사용자의 권한을 설정합니다.


무슨말인지 모르시겠죠?

여기까지만 듣고 무슨 말인지 대번에 이해한다면 그게 어디 사람입니까?

아니 뭐 그러지말란 법은 없겠습니다만......., 어쨌거나 진짜 설명은 이제부터입니다.


자, 그럼 먼저 user 테이블에 대하여 알아보겠습니다.

일단 user테이블이 어떻게 생겼는지 볼까요?





이렇게 17개의 컬럼이 나옵니다.

host, user, password 칼럼을 제외한 나머지 부분들은

mySQL에있는 테이타베이스 전체에 대해 권한을 부여할 것인가를 결정하는 부분입니다.


예를들면 Select_priv라는 컬럼에 값이 Y로 되어있으면 전체 데이타베이스들에 대해

Select문장을 실행할 수 있는 권한을 갖게 되는 것입니다.

물론 N으로 되어있으면 전체 데이타베이스들에 대해 Select문장의 권한이 없게 됩니다.

그러나 이 경우 db테이블에 해당 데이타베이스에 대해 Select_priv가 Y로 되어있으면

그 데이타베이스에 대해서는 Select가 가능합니다.

db테이블에 대해서는 일단 잠시후에 다루기로 하구요...


사용자 등록을 할때는 user와 db테이블에 등록을 합니다.

db테이블에 등록되어있지 않으면서 user테이블에만 등록되어있고 모든 권한이 Y로 되어있으면

그 사용자는 모든 데이타베이스에 대해 변경권한을 가지는 슈퍼유저가 될 것입니다.


user테이블에 사용자가 추가된 예를 하나 들어보겠습니다.

host칼럼에 210.123.123.123 이라고 등록되어있고,

user칼럼에 myuser 라고 등록되어있고,

password 칼럼에 1234 라고 등록되어있다면,

현재 210.123.123.123 이라는 컴퓨터에서 접속하는 1234라는 패스워드를 가진

myuser라는 사용자에 대해 권한을 설정하게 됩니다.

나머지 부분이 모두 Y로 되어있다면 이 myuser라는 사용자는 전체 데이타베이스를 운용할 수 있는

슈퍼유저의 권한을 갖는 사용자겠지요.

나머지 부분이 모두 N로 되어있다면 db테이블에 가서

그렇다면 어떤 db에 권한이 있는가를 살펴보게 됩니다.

일반적으로 host칼럼에는 현재 mysql이 설치된 컴퓨터의 이름을 쓰면 됩니다.

예를 들면 아파치의 httpd.conf에서 ServerName에 지정된 이름이지요.


이제 db 테이블을 보겠습니다.





db테이블입니다. db라는 칼럼도 있죠?

만약

host칼럼에는 localhost로,

user칼럼에는 myuser로,

db칼럼에는 testdb로

값이 들어가있다면, user테이블에서 host칼럼에 localhost로 등록되어있는 myuser라는 사용자에 대해

testdb라는 데이타베이스에 대한 권한을 설정하는 부분이 됩니다.

좀 복잡한가요?


그럼 이제 사용자를 한명 추가하면서 예를 들어 설명해 보겠습니다.


mysql> insert into user (host,user,password) values('localhost','kimho',password('1234'));

mysql> insert into db values('localhost','testdb','kimho','y','y','y','y','y','y','y','y','y','y');

mysql> flush privileges;


이렇게 하면 kimho라는 사용자가 한명 추가됩니다.

첫문장부터 하나씩 살펴보겠습니다.


첫번째 문장은 localhost에서 접속하는 kimho라는 사용자가 1234라는 패스워드로 접속하면

접속을 허락하는데, 이 kimho라는 사용자는 전체 데이타베이스에 대한 권한은 없습니다.

왜냐하면 host,user,password에만 칼럼값을 넣으면 나머지는 디폴트로 N으로 들어가기때문입니다.

그렇다면 kimho라는 사용자가 사용할 수 있는 데이타베이스는 무엇일까요?

그것을 바로 두번째 문장에서 추가하는 것입니다. db테이블에 추가를 하게 되지요.


두번째 문장은 이 localhost에서 접속한 kimho라는 사용자는

testdb라는 데이타베이스를 사용할 수 있습니다.

다른 데이타베이스로는 접근할 수 없는것이지요.

kimho라는 사용자는 testdb라는 사용자에 대해서는 모든 권한을 가져야하기때문에 나머지 부분들이

모두 Y로 들어갔습니다.


세번째 문장의 flush privileges는 권한을 새로 읽어들이는 부분입니다.

왜 권한을 새로 읽어들이냐구요?

그 부분에 대해 설명을 드리자면요...

mySQL은 시동이되면 사용자의 접속을 받기위해  user와 db등의 테이블로 부터 권한에 관한 설정을 읽어서

메모리상에 올려놓습니다.

그러면 이 메모리상의 설정을 토대로 사용자의 접속을 받고, 권한을 주고 하는 것이지요.

따라서 insert문으로 사용자를 추가했어도, 이는 테이블에 추가가 되었을뿐이지,

아직 메모리상에는 올라와있지 않으므로 현재로서는 적용이 되어있지 않은 상태가 됩니다.

그래서 flush라는 문장을 이용해서 메모리에 다시 올려놓도록 하는것이지요.

그럼 이해가되셨나요?

출처 : http://www.kimho.pe.kr/catalog/product_info.php?cPath=29_30&products_id=55
?

공부 게시판

공부에 도움되는 글을 올려주세요.

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 [공지] 공부 게시판 입니다. 처누 2003.08.18 1958859
2578 취업 을지로가라오케 010 2817 0845 을지로 가라오케 예약 및 문의 new 속삭이는와이번53 2026.10.04 1
2577 기타 강남세븐❤️OlO-8655-OO53❤️친절문의환영 #강남세븐 #강남세븐위치 #역삼동세븐 #강남세븐데이즈 #강남풀싸롱 #역삼동풀싸롱 #선릉역풀싸롱 #역삼동룸싸롱 #역삼룸사롱 #역삼풀살롱 #강남미러초이스 #역삼미러초이스 #강남세인트 #강남야구장 #선릉역야구장 #선릉룸싸롱 #역삼동룸싸롱위치 #강남풀싸롱가격 #역삼풀싸롱예약 #역삼동세븐데이즈 #역삼동풀싸롱 #역삼풀사롱추천 #역삼동룸싸롱 #역삼룸사롱 #역삼역풀싸롱 new 괴랄한재규어89 2026.10.04 1
2576 웹광고 완벽한 웨딩누브라, 소네트브라이드에서 찾다 new 비어있는히드라74 2026.10.04 1
2575 u-E(동향) 손목터널증후군, 현명한 선택 기준 new 강철의달고나32 2026.10.04 3
2574 가상화 양산싱크대막힘 완벽 해결 뚫자하수구 new 매혹적인곰18 2026.10.04 2
2573 u-E(표준화) 파주누수업체 고민 끝! 완벽 해결 new 사악한수색자59 2026.10.04 2
2572 웹 프로그래밍 양산싱크대막힘? 뚫자하수구로 해결! new 깊은우동그릇23 2026.10.04 2
2571 u-E(운영) 인천 1등 노래방 new 은하의드래곤51 2026.10.04 4
2570 취미 강남하이퍼블릭❤️OlO-8655-OO53❤️친절문의환영 #강남하이퍼블릭 #강남하퍼 #강남퍼블릭 #역삼동하이퍼블릭 #선릉하이퍼블릭 #대치동하이퍼블릭 #강남역하이퍼블릭 new 괴랄한재규어89 2026.10.04 2
2569 u-E(TestBed) 잠원동노래방 010 2817 0845 잠원동에서 편하게 알아보는 노래방 new 수수한히드라93 2026.10.04 2
2568 경제 특별한 가치를 담은 기념품제작의 시작 new 익살스러운오소리50 2026.10.04 4
2567 u-E(동향) 대구 흥신소 이용 가이드 new 흔들리는골렘32 2026.10.04 2
2566 육아,교육 손목터널증후군, 미세내시경으로 극복하기 new 소란스러운운석15 2026.10.04 3
2565 건강 토보샵: 명품레플리카 쇼핑몰의 모든 것 new 얼어붙은흐름98 2026.10.04 3
2564 카메라 ㅇㅇ병원, 부산 치과부터 피부과까지 완벽 가이드 new 은하의수색자14 2026.10.04 2
2563 u-E(법,정책) 24시노래방 new 사악한궁수89 2026.10.04 3
2562 u-E(전략) ㅇㅇ병원, 차원 다른 의료 서비스 경험 new 야생의스컹크61 2026.10.04 4
2561 취업 카_톡 gusim8003 선불유심내구제 (24시문의) 작업대출 선불유심 급한돈 가전내구제 new 광휘의퀘이사33 2026.10.03 4
2560 업무 강남안마❤️OlO-7593-9850❤️친절문의24시 #강남안마 #강남안마방 #강남클럽안마 #강남클럽식안마 #역삼동안마 #선릉안마 #삼성동안마 #대치동안마 #강남역안마 #논현동안마 괴랄한재규어89 2026.10.03 5
2559 보안 성공적인 베트남국제결혼의 시작, 에스비웨딩 성실한와이번25 2026.10.03 3
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 129 Next
/ 129


즐겨찾기 (가족)

JAESOO's HOMEPAGE


장여은 홈페이지


장여희 홈페이지


장여원 홈페이지


즐겨찾기 (업무)

알리카페 홀릭

숭실대 컴퓨터 통신연구실 (서창진)

말레이시아 KL Sentral 한국인 GuestHouse


즐겨찾기 (취미)

어드민아이디

유에코 사랑회

아스가르드 좋은사람/나쁜사람

JServer.kr

제이서버 메타블로그

재수 티스토리


즐겨찾기 (강의, 커뮤니티)

재수 강의 홈페이지


한소리


VTMODE.COM


숭실대 인공지능학과


숭실대 통신연구실


베너