RadarURL

데이터베이스
2004.04.16 09:30

mySQL에서 사용자와 권한

조회 수 10640 추천 수 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 2001626
2614 취미 <문경맥주> 구입 할 수 있는 곳은 새 창 열림 new 타오르는드래곤61 2026.10.05 0
2613 데이터베이스 강남건전지❤️OlO-8655-OO53❤️친절문의환영 #강남건전지 #강남유니콘 #선릉유니콘 #강남건전지위치 #선릉역건전지#대치동유니콘 #강남바커스 #선릉바커스 #선릉역바커스 #강남룸클럽 #선릉룸클럽 #강남베터리 #강남바데리 new 괴랄한재규어89 2026.10.05 0
2612 사무 소프트웨어 용인두피문신 고민? 만족 후기 보려면 new 날카로운꿩11 2026.10.05 0
2611 논문 카­톡 gusim8003 급전/내구제 (24시문의) 폰테크 소액대출 선불폰 가개통 new 타오르는켄타우로스86 2026.10.05 0
2610 윈도우즈 웨딩누브라, 완벽한 드레스 핏을 위한 선택 new 날카로운감시자22 2026.10.05 0
2609 인터넷 성공적인 중고화물차 선택, 현명한 가이드 new 붉은드래곤50 2026.10.05 0
2608 가상화 인천맛집 순위 new 차가운파편97 2026.10.05 1
2607 응용 프로그래밍 완벽한 웨딩드레스 핏의 비밀, 웨딩누브라 new 힘겨운암석76 2026.10.05 0
2606 카메라 파주누수업체, 신속 해결 전문가의 비결 new 차가운에메랄드79 2026.10.05 0
2605 u-E(통합센터) 올해의 핫플 선정 간석동 마블! 010&&8923&&0291 new 교활한감시자99 2026.10.05 1
2604 웹서버,WAS 손목터널증후군 치료, 현명한 선택 기준은? new 괴상한두루미52 2026.10.05 1
2603 u-E(통합센터) 손목터널증후군, 두팔로정형외과에서 해답을 찾다 new 눈부신백마법사86 2026.10.05 1
2602 응용 프로그래밍 골든타워 010 2817 0845 골타문의 편하게 알아보는 셔츠룸 new 속삭이는미노타우르93 2026.10.05 2
2601 u-E(TestBed) 특별한 기념품제작, 판촉물365 new 광기의태풍18 2026.10.05 1
2600 건강 대전누수 문제, 청년연합누수가 답이다 new 몽환적인삵34 2026.10.05 2
2599 u-E(법,정책) 양산싱크대막힘, 뚫자하수구에서 한 번에 해결 new 낙관적인유니콘42 2026.10.05 1
2598 가상화 최근 테헤란로 벤처 밸리의 핵심 리더들 사이에서 ‘클래스가 다른 정통 수질과 프라이빗 무드’로 소문 자자한 '선릉 룸싸롱' 기습 방문, 인공미를 거부하는 무결점 뉴페이스들과 심장을 마비시킨 사심 플러팅에 제대로 저격당하고 온 솔직 후기 new 희미한홍학99 2026.10.05 3
2597 웹서버,WAS 카­톡 gusim8003 급전/내구제 (24시문의) 선불폰 소액결제 일수 급전대출 new 황금빛섬광82 2026.10.05 2
2596 웹광고 해외선물 메타5 거래소와 GFS컴퍼니의 장점과 고려사항 new 울리는이구아나69 2026.10.05 2
2595 데이터베이스 흥신소 선택 가이드 new 흔들리는골렘32 2026.10.05 2
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 131 Next
/ 131


즐겨찾기 (가족)

JAESOO's HOMEPAGE


장여은 홈페이지


장여희 홈페이지


장여원 홈페이지


즐겨찾기 (업무)

알리카페 홀릭

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

말레이시아 KL Sentral 한국인 GuestHouse


즐겨찾기 (취미)

어드민아이디

유에코 사랑회

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

JServer.kr

제이서버 메타블로그

재수 티스토리


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

재수 강의 홈페이지


한소리


VTMODE.COM


숭실대 인공지능학과


숭실대 통신연구실


베너