블로그 이미지
redkite

카테고리

분류 전체보기 (291)
00.SI프로젝트 산출물 (0)
00.센터 운영 문서 (0)
01.DBMS ============.. (0)
01.오라클 (117)
01.MS-SQL (15)
01.MySQL (30)
01.PostgreSql (0)
01.DB튜닝 (28)
====================.. (0)
02.SERVER ==========.. (0)
02.서버-공통 (11)
02.서버-Linux (58)
02.서버-Unix (12)
02.서버-Windows (2)
====================.. (0)
03.APPLICATION =====.. (11)
====================.. (0)
04.ETC =============.. (0)
04.보안 (5)
====================.. (0)
05.개인자료 (1)
06.캠핑관련 (0)
07.OA관련 (1)
Total
Today
Yesterday

달력

« » 2025.1
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

공지사항

최근에 올라온 글

[MySQL]USER 등록

01.MySQL / 2012. 12. 19. 16:14

MySQL 은 기본적으로.. 
MySQL 이라는 DB 내에 있는 3개의 테이블(user, db ,host)로 사용자 권한을 설정합니다 

MySQL 이 설치된 후에는 기본적으로 root 만 유저로 등록 됩니다. 
(위에서 말하는 root 는 MySQL 에서의 root 입니다. 즉, 계정의 root 가 아닙니다.)


그런데 유저로 등록된 root 는 비밀번호가 지정되어 있지 않으므로.. 
쉘 상에서 root 의 비밀번호를 지정해줍니다. 

*쉘에서 root 의 권한으로 작업함. 
# mysqladmin -uroot password 1234 
(비밀번호를 1234 로 지정) 


다른 사용자는 user 와 db 에 등록해 주어야 합니다. 


사용자 권한은 2가지로 나누어지는데.... 
1. MySQL 서버에 접속할 수 있는 기능 (user 테이블 사용) 
2. DB를 사용할 수 있는 기능 (db 테이블 사용) 

한가지 주의 하실점은.. 
user 테이블에 권한을 'Y'로 주면 그 권한이 모든 DB 에 적용이 된다는 점입니다. 
심지어 권한을 설정하는 mysql DB까지도 말입니다. 

그러므로 user 테이블에는.. 
반드시 접속만 가능하도록 모든 기능을 'N' 로 주시고.. 
db 테이블에서 사용자에게 적당한 DB를 주는 것이 매우 바람직 합니다. 

자.. 다음 시나리오 따른 실제 작업 화면을 보시고 참고 하시기 바랍니다. 

-------------------------------------------------------------------------- 
처음에.. root 로 로그인 했다는 가정하에.. 
1) myuser 라는 사용자를 추가 하고.. 
2) 그 사용자에게 MYUSER 라는 DB를 생성해 주고 해당 DB 에서 모든 권한을 준다 
-------------------------------------------------------------------------- 

[root@home /root]# mysql -uroot -p1234 mysql 
Reading table information for completion of table and column names 
You can turn off this feature to get a quicker startup with -A 

Welcome to the MySQL monitor. Commands end with ; or \g. 
Your MySQL connection id is 1961 to server version: 3.22.20a-log 

Type 'help' for help. 

// 로컬호스트 사용자를 등록합니다. 접속할 수 있는 권한만! 
mysql> insert into user values ('localhost','myuser',password('mypasswd'),'N','N','N','N','N','N','N','N','N','N','N','N','N','N'); 

// 원격접속 사용자를 등록합니다. 접속할 수 있는 권한만! 
mysql> insert into user values ('원격접속IP','myuser',password('mypasswd'),'N','N','N','N','N','N','N','N','N','N','N','N','N','N'); 

Query OK, 1 row affected (0.00 sec) 

* 주의 * 
위의 'N' 를 'Y' 로 주면 모든 DB 에 권한이 주어집니다. 
자칫 보안에 문제점이 발생 될 수 있으므로 주의를 요합니다. 

// 사용자가 사용할 DB와 권한을 줍니다. 
mysql> insert into db values('localhost','MYUSER','myuser','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y'); 

Query OK, 1 row affected (0.00 sec) 

mysql> quit 
Bye 

// DB를 만들어 줍니다 
[root@home /root]# /usr/local/mysql/bin/mysqladmin create MYUSER 
Database "MYUSER" created. 

// 권한 테이블을 다시 읽도록 서버를 Reload 합니다 
[root@home /root]# /usr/local/mysql/bin/mysqladmin reload 

// 이제 만들어진 사용자로 MySQL서버에 로그인 합니다. 
[root@home /root]# mysql -umyuser -pmypasswd MYUSER 
Welcome to the MySQL monitor. Commands end with ; or \g. 
Your MySQL connection id is 1965 to server version: 3.22.20a-log 

Type 'help' for help. 

mysql> create table mytable(id int , name char(10) ) ; 
Query OK, 0 rows affected (0.01 sec) 

mysql> insert into mytable values(1,'loveme'); 
Query OK, 1 row affected (0.00 sec) 

mysql> select * from mytable ; 
+------+--------+ 
| id | name | 
+------+--------+ 
| 1 | loveme | 
+------+--------+ 
1 row in set (0.00 sec) 

mysql>

Posted by redkite
, |

최근에 달린 댓글

최근에 받은 트랙백

글 보관함