2014년 2월 4일 화요일

MySQL 사용자 추가하기

MySQL 실행(mysql -u root -p)  후 show databases; 명령을 내리게 되면

기본적으로 생성되어있는

mysql> show databases;
+-------------+
| Database     |
+-------------+
| mysql          |
| test             |
+-------------+
2 rows in set (0.06 sec)

mysql 과 test 두 녀석이 보인다.

여기서 mysql은 시스템 관리를 위해 설정된 데이터베이스 이다.
이곳 주요 기능은 계정별 password관리 사용자 권한을 설정 해주는 곳이기에
 *  절대로 지우면 안된다 *

test는 말 그대로 테스트 디비


자! 본격적으로 디비를 생성하고 비밀번호와 아이디를 부여해보자.

mysql> create database ju;

잘 만들어 졌을까?

mysql> show databases; 
+-------------+
| Database     |
+-------------+
| mysql          |
| test             |
| ju                |
+-------------+
3 rows in set (0.06 sec)

제대로 생성된거 같으니  ju 디비에 비번을 걸어줘야 하는데
그 전에 해야할게 mysql 에 사용자를 등록해줘야 한다.
사물함 겉면에다 이름을 써넣는 거라고 할까..나..

mysql> use mysql
mysql> insert into user (host,user,password)
       -> values ('localhost','zzong','password('1234'));

                      (호스트명) (사용자명)            (비밀번호)

5.0 이전 버전에서는 위와같이 쉽게 사용자 등록이 되었으나

5.0 부터는 다음과 같이 바뀌었다 ...

INSERT INSERT INTO user
   (Host, User, Password, Select_priv, Insert_priv, Update_priv, Delete_priv, Create_priv, Drop_priv, Reload_priv,
                      Shutdown_priv, Process_priv, File_priv, Grant_priv, References_priv, Index_priv, Alter_priv, Show_db_priv,
                      Super_priv, Create_tmp_table_priv, Lock_tables_priv, Execute_priv, Repl_slave_priv, Repl_client_priv,
                      Create_view_priv, Show_view_priv, Create_routine_priv, Alter_routine_priv, Create_user_priv, ssl_type,
                      ssl_cipher, x509_issuer, x509_subject, max_questions, max_updates, max_connections, max_user_connections)
        VALUES('localhost', 'zzong', PASSWORD('****'), 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y',
                       'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', '', '', '', '', 0, 0, 0, 0);



설명하기도 복잡하니.. VALUES (    ) 요기만 잘 설정해서 등록하도록 하자.
로컬호스트에 쫑 이라는 아이디로 비번을 **** 로 사용자를 추가하겠다는 뜻이다.

자 그럼 제대로 추가됐는지 보자



맨 마지막 부분에 zzong 로 설정되어 있으며 password 는 암호로 관리되어 있다.

miojj 라는 이름표
mio  라는 이름표  를 생성한 디비(ju) 에 가져다 붙이면
각 디비들은 고유의 아이디와 비번을 가지게 되어 보안성을 띠게 된다.



자!이제 디비에 자물쇠를 달아서 혼자만 사용할 수 있도록 하자.

mysql > insert into db
       -> values ('localhost','lee','zzong','y','y','y','y','y','y','y','y','y','y','y','y');

                                   (디비명)(사용자명)   (설정권한의 갯수를 모두 지정)

'y' 가 열두개 쓰여진 이유?

참고로 보는 책에는 단순히
삽입, 검색, 수정 등 이 권한은 10개로 되어있기 때문에 권한의 사용여부를
'y','n'로 표시한다 라고 쓰여져 있지만 권한의 갯수는 버전별로 틀리다.
현재사용버전은 12개 인줄도 모르고 한 시간이나 네이버를 헤매다니...

                                  * 확인 방법은 아래 사진 참조 *


Host, Db, User  을 뺀 나머지 ..




자! 자물쇠를 달았으면 ' 디비가 내 것이다' 라고 선포하자.

mysql > flush privileges;
(  설정한 권한의 적용 : 1. 컴퓨터 재부팅
                                 2. flush privileges;   )


이제 디비가 제대로 열리는지 확인해보기 위해
mysql 을 다시 시작해보자

mysql > \q
C:> mysql -u zzong -p
Enter password : ****

조금 헷갈렸던 부분인데 C:> mysql -u zzong -p 가운데 zzong 는
디비명을 쓰는 것이 아니라 사용자 아이디를 쓰는 것. root 접속법 때문에 헷갈렸다.


문제가 없다면 웰컴 투 마이에스큐엘 모니터 어쩌구 저쩌구 나오면서
성공적으로 접속이 완료된다.




마지막으로 root 에도 비번을 걸어주자.  '보안철저'

mysql> use  mysql;
mysql> update  user  set  password=password('123456') where user='root';
Query OK, 2 rows affected (0.03 sec)
Rows matched: 2  Changed: 2  Warnings: 0

mysql> flush  privileges; <--- 적용
flush privileges; 를 하지 않으면 mysql에서 빠져나와서 root 로그인이 안된다.
확인
mysql> select  host, user, password  from  user;

+----------------------------------------------------------------+
| Host                                 user              password                      |
+----------------------------------------------------------------+
| localhost                           root          2e01146f5c065853                 |
| localhost.localdomain         root          2e01146f5c065853                 |
+----------------------------------------------------------------+


이제 다음으로 해야 할 일은 테이블 만들어서 디비에 자료를 저장해보고
자료를 웹페이지에 출력해보자.

간단하게 회원가입 페이지 작성 !

댓글 없음:

댓글 쓰기