MySQL에서 사용자등록과 권한 설정하기 > MySQL

STUDY ROOM

MySQL

MySQL에서 사용자등록과 권한 설정하기

페이지 정보

작성자 JMStudy 작성일05-06-26 01:32 조회5,913회 댓글0건

본문

1. 방법1
mysql> CREATE DATABASE IF NOT EXISTS dbo;
Query OK, 1 row affected (0.00 sec)

mysql> GRANT USAGE ON *.* TO dbo@localhost IDENTIFIED BY "test";
Query OK, 0 rows affected (0.00 sec)

mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER ON dbo.* TO dbo@localhost;
Query OK, 0 rows affected (0.00 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)


2. 방법2
mysql> insert into user (host,user,password) values('localhost','jmpark',password('1234'));
mysql> insert into db values('localhost','testdb','jmpark','y','y','y','y','y','y','y','y','y','y');
mysql> flush privileges;


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

첫번째 문장은 localhost에서 접속하는 jmpark라는 사용자가 1234라는 패스워드로 접속하면
접속을 허락하는데, 이 kimho라는 사용자는 전체 데이타베이스에 대한 권한은 없습니다.
왜냐하면 host,user,password에만 칼럼값을 넣으면 나머지는 디폴트로 N으로 들어가기때문입니다.
그렇다면 jmpark는 사용자가 사용할 수 있는 데이타베이스는 무엇일까요?
그것을 바로 두번째 문장에서 추가하는 것입니다. db테이블에 추가를 하게 되지요.

두번째 문장은 이 localhost에서 접속한 jmpark라는 사용자는 testdb라는 데이타베이스를 사용할 수 있습니다.
다른 데이타베이스로는 접근할 수 없는것이지요.
jmpark라는 사용자는 testdb라는 사용자에 대해서는 모든 권한을 가져야하기때문에 나머지 부분들이 모두 Y로 들어갔습니다.

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

mySQL은 시동이되면 사용자의 접속을 받기위해 user와 db등의 테이블로 부터 권한에 관한 설정을 읽어서 메모리상에 올려놓습니다.
그러면 이 메모리상의 설정을 토대로 사용자의 접속을 받고, 권한을 주고 하는 것이지요.
댓글목록

등록된 댓글이 없습니다.