mysql 유저,디비생성
2010.05.12 07:34
원문 : http://www.ischo.net -- 조인상 // 시스템 엔지니어
Writer : http://www.ischo.net -- ischo // System Engineer in Replubic Of Korea
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
본문 : http://www.ischo.net -- 조인상 //시스템 엔지니어
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
MySQL 은 기본적으로 mysql 이라는 DB내에 있는 3개의 테이블(user, db ,host)로
사용자 권한을 설정합니다
설치후에는 기본적으로 root 만 유저로 등록 됩니다.
다른 사용자는 user 와 db 에 등록해 주어야 합니다.
*지금 하는 모든 내용은 MySQL 메뉴얼에 이미 다 나와 있습니다.
사용자 권한은 2가지로 나누어지는데....
1. MySQL서버에 접속할 수 있는 기능(user 테이블 사용)
2. 각 DB를 사용할 수 있느 기능 (db 테이블 사용)
한가지 주의 하실점은 user 테이블에 권한을 'Y'로 주면 그 권한이 모든 DB 에 적용이 된다는 점입니다.
심지어 권한을 설정하는 mysql DB까지도 말입니다.
그러므로 user 테이블에는 반드시 접속만 가능하도록 모든 기능을 'N' 로 주시고
db 테이블에서 사용자에게 적당한 DB를 주는 것이 매우 바람직 합니다.
자 다음 시나리오 따른 실제 작업 화면을 보시고 참고 하시기 바랍니다.
--------------
처음에 root 로 로그인 했다는 가정하에 myuser 라는 사용자를 추가 하고
그 사용자에게 MYUSER 라는 DB를 생성해 주고 해당 DB 에서 모든 권한을 준다
-------------
[root@home /root]# mysql 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');
Query OK, 1 row affected (0.00 sec)
// 사용자가 사용할 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> q
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>
-------------------------------------------------------
mysql이 버전4가 되면서 몇가지 필드가 추가되었다.
이를 위해 유저생성을 다음과 같이 한다.
INSERT INTO user (Host, User, Password, Select_priv, Insert_priv, Updrown;background-color: yellow;font-weight:bold'>ate_priv, Delete_priv, Crerown;background-color: yellow;font-weight:bold'>ate_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv, File_priv, Grant_priv, References_priv, Index_priv, Alter_priv, Show_db_priv, Super_priv, Crerown;background-color: yellow;font-weight:bold'>ate_tmp_table_priv, Lock_tables_priv, Execute_priv, Repl_slave_priv, Repl_client_priv, ssl_type, ssl_cipher, x509_issuer, x509_subject, max_questions, max_updrown;background-color: yellow;font-weight:bold'>ates, max_connections) VALUES("localhost", "dbman", password("dbman"), "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "Y", "", "", "", "", "0", "0", "0");
[ mysql db 삭제후 유저 재성성 ]
mysql db 삭제 방법
use mysql;
show table status;
select * from db where user = "계정";
select * from user where user = "계정";
delete from db where user = "계정";
delete from user where user = "계정";
drop database DB명;
생성
create database 디비명;
grant all privileges on 디비명.* to 유저명@'%' identified by '패스워드' with grant option;
grant all privileges on 디비명.* to 유저명@'localhost' identified by '패스워드' with grant option;
flush privileges;
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
15 | MariaDB root 패스워드 초기화 | ischo | 2023.02.23 | 231 |
14 | MariaDB federated 활성화 | ischo | 2023.02.23 | 263 |
13 | MySQL 5.7 에서 MariaDB 10.5 로 마이그레이션하기 | ischo | 2023.02.23 | 563 |
12 | MySQL 감사 로그 설정 | ischo | 2022.09.14 | 847 |
11 | RHEL/Rocky Linux 8.7 버전에서 MySQL 5.7 버전 설치하기 | ischo | 2023.03.20 | 2096 |
10 | MySQL characterset 변경 | 조인상 | 2015.06.15 | 5189 |
9 | MySQL root 패스워드 분실시 패스워드 변경 | 조인상 | 2011.11.21 | 9531 |
8 | MySQL Binary-Log 에 대하여 | 조인상 | 2010.12.10 | 10233 |
» | mysql 유저,디비생성 | 조인상 | 2010.05.12 | 10413 |
6 | mysql 에서 charset 확인방법 | 조인상 | 2010.05.12 | 12406 |
5 | MySQL Innodb 에 대하여 | 조인상 | 2011.05.02 | 13264 |
4 | MySQL DB 이전 절차 | 조인상 | 2014.10.31 | 13716 |
3 | mysql 에러 종류 | 조인상 | 2010.05.12 | 16248 |
2 | Mysql bin-log 커졌을때 (bin-log 관리하기) | 조인상 | 2010.12.09 | 21394 |
1 | [MySQL] MySQL 연습DB | 조인상 | 2012.02.22 | 22915 |