subject MySQL 유저 등록하기 (원격접속포함)
author 관리자 date 2003-11-17 hit 199 HIT
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>

// 모든게 잘 돌아가는 듯 합니다 ^,^

목록보기
17  조인 쿼리 예제  2006-05-04 163
16  [쿼리문] 데이타 파일에서 자료 읽어오기 (load data)  2005-09-19 89
15  두근두근만화방 로그변환 DB 업데이트 소스  2005-09-16 145
14  데이타 덤프 와 복구  2006-10-21 238
13  원격 접속 열기  2006-05-26 238
12  MySql 통합 접속툴 - phpMyAdmin-2.8.0.3 설치  2006-04-24 259
11  다양한 쿼리 예제들  2005-10-24 202
10  Group by 사용 예제  2004-10-04 346
9  중복행체크.. Distinct 사용..  2004-10-04 310
8  MySQL DB 가 깨졌을때 살리는법  2003-11-17 202
7  MySQL 복구하기  2003-11-17 249
 MySQL 유저 등록하기 (원격접속포함)  2003-11-17 199
5  MySQL 데이타를 text 혹은 excel 파일로 받는 법  2003-11-17 106
4  필드 최적화 체크 방법  2003-11-17 88
3  초기 루트 사용자 설정  2003-11-17 82
1 2