๐Ÿ“‚๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค/๐Ÿ“ŠDBMS

์šฐ๋ถ„ํˆฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํŒจ์Šค์›Œ๋“œ ๋ณ€๊ฒฝ ์ง์ ‘ ๋ฐ์ดํ„ฐ ์ž…๋ ฅ ํŒŒ์ผ์„ ํ†ตํ•œ ๋ฐ์ดํ„ฐ ์ž…๋ ฅ ์•”ํ˜ธํ™” ๋ฐ์ดํ„ฐ ๋งŒ๋“ค๊ธฐ

๐Ÿ‘ฉ‍๐ŸŽ“์ธํ…”๋ฆฌ๊ฐ์ž๐Ÿฅ” 2023. 5. 28. 23:28

A ํ˜ธ์ŠคํŠธ์— ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์žˆ์„ ๋•Œ B ํ˜ธ์ŠคํŠธ์— ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์„ค์น˜๋˜์–ด์ ธ ์žˆ์œผ๋ฉด ์›๊ฒฉ์œผ๋กœ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.
์ด๋Ÿฐ ๋ถ€๋ถ„์ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ Access ๊ทœ์ œ์ด๋‹ค.

 

ํŒจ์Šค์›Œ๋“œ ๋ณ€๊ฒฝ

์ฝ˜์†”์—์„œ๋Š” mysqladmin -u root password 'rootoor'; ํ•ด์ฃผ๊ณ  
mysql> update mysql.user (mysql ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค.user ํ…Œ์ด๋ธ”)
           set authentication_string=PASSWORD('rootoor')
           where user='root'; ํ•ด์ฃผ๋ฉด ๋œ๋‹ค. 


 ์‚ฌ์šฉ์ž ์ƒ์„ฑ๊ณผ ๊ถŒํ•œ ์ฃผ๊ธฐ

mysql> create user 'paul'@'localhost' identified by 'paul';
mysql> grant all privileges(OR delete, select, .... ๊ถŒํ•œ) on *.*(๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค_๋ช….ํ…Œ์ด๋ธ”_๋ช…) to 'paul'@'localhost
           identified by 'paul'; <=๋กœ์ปฌ ์ ‘์†
           grant all privileges on *.* to 'paul'@'%' identified by 'paul'; <=์›๊ฒฉ์ ‘์†


  ์‚ฌ์šฉ์ž ์‚ญ์ œ

mysql> drop user 'paul'@'localhost'; ์‚ญ์ œ 
mysql> delete from mysql.user where host='192.168.100.100' and user='paul'; <=192.168.100.100 ํ˜ธ์ŠคํŠธ์˜ paul
           delete from mysql.user where host='192.168.100.%' and user='paul'; <=192.168.100.0 ๋„คํŠธ์›Œํฌ ์ƒ์˜ paul

 

systemctl start mysql

systemctl enable mysql.service

ufw allow 3306/tcp

netstat -nltp |grep 3306

mysqladmin -u root password 'rootoor123'์œผ๋กœ ์ง€์ •ํ–ˆ๋”๋‹ˆ mysql -u root -p์—์„œ rootoor123์„ ์ž…๋ ฅํ•ด์„œ ๋“ค์–ด๊ฐ”๋‹ค.

 

select * from mysql.user;

 

ํŒจ์Šค์›Œ๋“œ ๋ณ€๊ฒฝ์„ ํ•ด๋ณด๊ฒ ๋‹ค.

 

์ด๋ฏธ password policy๋ฅผ low๋กœ ๋ณ€๊ฒฝํ•˜๊ณ  ์บก์ณํ–ˆ๋‹ค.

(set global validate_password_policy=LOW;)

์œ ์ € ์ƒ์„ฑ

=>์—ฌ๊ธฐ์„œ 'ํŒจ์Šค์›Œ๋“œ๊ฐ€ ์ •์ฑ…๊ณผ ์•ˆ ๋งž๋Š”๋‹ค'๊ณ  ์˜ค๋ฅ˜๋ฅผ ๋ณด์ด๋ฉด(4์ž๋ฆฌ ํŒจ์Šค์›Œ๋“œ๋„ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด)
a) show variables like 'validata_password%'; ํ•ด์„œ ์„ค์ •์„ ๋ณด๊ณ  
b) set global validate_password_policy=LOW;
c) set global validate_password_length=4; ํ•ด์ฃผ๊ณ  
d) flush privileges; ํ•ด์„œ ๊ถŒํ•œ์„ ๊ฐฑ์‹ ํ•œ ๋‹ค์Œ,
e) exit; ํ•˜๊ณ , 
f) ๋‹ค์‹œ ์ฝ˜์†”์—์„œ mysql –u root –prootoor ํ•ด์„œ root ์‚ฌ์šฉ์ž๋กœ ๋“ค์–ด๊ฐ€ ๋ณธ๋‹ค.

 

 

 show databases; ํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋“ค์„ ๋ณด๊ณ  
create database ubuntu_db; ํ•ด์„œ ubuntu_db๋ผ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋งŒ๋“ค๊ณ  
use ubuntu_db; ํ•ด์„œ ubuntu_db๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ํ•˜๊ณ  
show tables; ํ•ด์„œ ์ด ubuntu_db ์•ˆ์— ํ…Œ์ด๋ธ”์ด ์žˆ๋Š”์ง€ ๋ณด๊ณ  

create table ubuntu_tbl ( <= ubuntu_tbl์ด๋ผ๋Š” ํ…Œ์ด๋ธ”_๋ช… ์ง€์ •
id int not null auto_increment,  <= id ํ•ญ๋ชฉ(์—ด_๋ช…), int(๋ฐ์ดํ„ฐ_ํƒ€์ž…), not null(์ œ์•ฝ์กฐ๊ฑด), ์ž๋™์ฆ๊ฐ€
first_name varchar(20),                  <= f_name, varchar(20)์€ ๊ฐ€๋ณ€ ๋ฌธ์ž์—ด์ด๊ณ  20๋น„ํŠธ ํฌ๊ธฐ
last_name varchar(20) not null,
city varchar(20),
phone varchar(15),
primary key (id)  <= ์ด ํ…Œ์ด๋ธ”์—์„œ '์œ ์ผํ•˜๊ณ  ๊ฐ’์ด ์žˆ๋Š”' ์ฃผํ‚ค๊ฐ€ id์ด๋‹ค. 
        ); ํ•ด์„œ ubuntu_tbl์ด๋ผ๋Š” ํ…Œ์ด๋ธ”์„ ๋งŒ๋“ ๋‹ค.


desc ubuntu_tbl; ํ•ด์„œ ํ…Œ์ด๋ธ”์˜ ์†์„ฑ์„ ๋ณธ๋‹ค. <= ์ด ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ด์„œ ์—ด_๋ช…์„ ๋ณธ๋‹ค. 
   select ์—ด_๋ช…1, ์—ด_๋ช…2, ... from ํ…Œ์ด๋ธ”_๋ช…
   where ์กฐ๊ฑด;  ์ด SQL์˜ ๊ธฐ๋ณธ ๊ตฌ๋ฌธ์ด๋ฏ€๋กœ ์—ด_๋ช…์„ ๋ชจ๋ฅด๋ฉด ์ฟผ๋ฆฌ๊ฐ€ ๋ถˆ๊ฐ€ํ•˜๋‹ค.
   ===>๋น…๋ฐ์ดํ„ฐ ๋ถ„์„ ๋“ฑ์—์„œ ๊ณ„์‚ฐ ์ˆ˜ํ–‰ ์‹œ ๋ชจ๋“  x, y์™€ ๊ฐ™์€ ๋ณ€์ˆ˜๊ฐ€ ๋ฐ”๋กœ ์ด ์—ด_๋ช…์ด๋‹ค. 
           “20์„ธ ์ด์ƒ์—์„œ ์›”์ˆ˜ 500์ด์ƒ........”์ด๋ผ๋Š” ์กฐ๊ฑด์ด ์žˆ๋‹ค๋ฉด ์—ด_๋ช… age๊ฐ€ ๋ณ€์ˆ˜๊ฐ€ ๋˜์–ด์„œ age >= 20์‹์œผ๋กœ ์ˆ˜์‹์ด            ๊ฐ€๋Šฅํ•˜๋‹ค.


๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ฟผ๋ฆฌ์˜ ๊ธฐ๋ณธ์€ 
๋ฌธ์ž, ๋…„๋„๋Š” ' ' ์•ˆ์— ๋‘”๋‹ค.
๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ณ„์€ ์—†๋‹ค.
=>DataDictionary์•ˆ์˜ ๋ฐ์ดํ„ฐ๋Š” ๋Œ€๋ฌธ์ž๋กœ ํ•ด์ค€๋‹ค.
    ๋ฐ์ดํ„ฐ๋Š” ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ณ„ํ•œ๋‹ค.
select fname, CITY, .... FROM ubuntu_tbl
where id=01; ์‹์œผ๋กœ ํ•ด์ค„ ์ˆ˜ ์žˆ๋‹ค. 
  Paul ์‚ฌ์šฉ์ž๊ฐ€ ์žˆ์„ ๋•Œ 
~~~~~
where fname='Paul'ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค. 'paul' ํ•˜๋ฉด ์˜ค๋ฅ˜
์ฟผ๋ฆฌ ๋ฌธ์žฅ์ด ๋๋‚˜๋ฉด ; ์„ ์ฐ์–ด ์ค€๋‹ค.

 

์ง์ ‘ ๋ฐ์ดํ„ฐ ์ž…๋ ฅ

ํ…Œ์ด๋ธ”์— ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ์–ด๋ณธ๋‹ค. 
  insert into ํ…Œ์ด๋ธ”_๋ช… (ํ•ญ๋ชฉ๋“ค) values (๊ฐ’๋“ค); ์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ๋Š”๋‹ค. 
์—ฌ๊ธฐ์„œ ์ž…๋ ฅ๋˜๋Š” ๋ฐ์ดํ„ฐ ๊ฐ’์˜ ์ˆ˜๊ฐ€ ํ•ญ๋ชฉ ์ˆ˜์™€ ๊ฐ™์„ ๋•Œ์—๋Š” ํ•ญ๋ชฉ๋“ค์„ ์ƒ๋žตํ•  ์ˆ˜ ์žˆ๋‹ค. 
=>์›๋ž˜ ํ•ญ๋ชฉ ์ˆ˜๊ฐ€ 10๊ฐœ์ผ ๋•Œ 10๊ฐœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ๋Š”๋‹ค๋ฉด ํ•ญ๋ชฉ์„ ์ƒ๋žตํ•  ์ˆ˜ ์žˆ์ง€๋งŒ 
=>7๊ฐœ์˜ ๋ฐ์ดํ„ฐ๋งŒ ๋„ฃ์„ ๋•Œ์—๋Š” 
โ–ธํ•ญ๋ชฉ์—์„œ 7๊ฐœ๋ฅผ ์ง€์ •ํ•˜๊ณ  7๊ฐœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ๊ฑฐ๋‚˜, 
โ–ธํ•ญ๋ชฉ๋ฅผ ์ƒ๋žตํ•˜๊ณ  ๋‚˜๋จธ์ง€ 3๊ฐœ๋Š” ' '์ด๋‚˜ NULL ๊ฐ’์œผ๋กœ ์ฃผ์–ด์„œ 10๊ฐœ๋ฅผ ๋งž์ถฐ์ฃผ์–ด์•ผ ํ•œ๋‹ค.
=>id๊ฐ€ auto-increment์ผ ๋•Œ์—๋Š” id๋ผ๋Š” ํ•ญ๋ชฉ๋งŒ ์จ์ฃผ๋ฉด ์ž๋™์œผ๋กœ ์ˆซ์ž๊ฐ€ ์˜ฌ๋ผ๊ฐ„๋‹ค.

๋ฐ์ดํ„ฐ ์ˆ˜์ •


ํŒŒ์ผ์„ ํ†ตํ•œ ๋ฐ์ดํ„ฐ ์ž…๋ ฅ

  ๋ฐ์ดํ„ฐ๊ฐ€ ์“ฐ์—ฌ ์žˆ๋Š” ํŒŒ์ผ์„ ํ†ตํ•ด์„œ ํ…Œ์ด๋ธ”์— ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅํ•ด๋ณด์ž.  
  ๋ฐ์ดํ„ฐ๊ฐ€ ๋“ค์–ด ์žˆ๋Š” ํŒŒ์ผ ๋‚ด์˜ ๋ฐ์ดํ„ฐ๋Š” delimiter(๊ตฌ๋ถ„์ž)๋ฅผ ์—„๊ฒฉํžˆ ์ง€์ผœ์ ธ ์ €์žฅ๋˜์–ด์ ธ ์žˆ์–ด์•ผ ํ•œ๋‹ค. 
๊ตฌ๋ถ„์ž๋Š” ,  ;  :  Tab space ๋“ฑ์ด๋‹ค. ์–ต์ง€๋กœ ๋ชจ์–‘์„ ๋”ฐ์ ธ์„œ Spacebar๋กœ ์ด๋™ํ•˜๋ฉด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋งŒ๋“ค์–ด ๋‘๋ฉด ์‹ค์ œ ํ…Œ์ด๋ธ”์— ๋ฐ์ดํ„ฐ๊ฐ€ ์•ˆ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋‹ค.
  ๋˜ ์ฒซ ์ค„์— ๋ฐ์ดํ„ฐ๊ฐ€ ์•„๋‹Œ ํ•ญ๋ชฉ_๋ช…(์—ด_๋ช…)์ด ์žˆ์œผ๋ฉด new line์ด๋ผ๋Š” ์ง€์‹œ์–ด๋กœ ์ฒซ ์ค„์„ ๋ฌด์‹œํ•˜๊ณ  ๋กœ๋“œ์‹œํ‚ฌ ์ˆ˜๋„ ์žˆ๋‹ค. 
a. ์ƒˆ ์ฝ˜์†”์„ ์—ด๊ณ  nano name.txt ํ•˜๊ณ  ์ž…๋ ฅ์ฐฝ์ด ๋œจ๋ฉด 
Tab ํ‚ค๋กœ ์—„๊ฒฉํ•˜๊ฒŒ ๊ตฌ๋ณ„ํ•ด์„œ(Tab, ; , , , '', ...๋“ฑ์„ delimiter(๊ตฌ๋ถ„์ž)๋ผ๊ณ  ํ•˜๋Š”๋ฐ ๋ณ„๋„๋กœ ๊ตฌ๋ถ„์ž๋ฅผ ์ง€์ •ํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋กœ๋“œํ•œ๋‹ค.

  nano name.txt ํ•˜๊ณ  ํŽธ์ง‘๊ธฐ๋ฅผ ์—ด๋ฉด 
๋‚ด์šฉ์„ ์ž…๋ ฅํ•œ ๋’ค
Ctrl+o > Enter > Ctrl+x ํ•ด์„œ ์ €์žฅํ•œ๋‹ค.


  Tab ํ‚ค๋กœ ๊ตฌ๋ถ„๋œ name.txt ํŒŒ์ผ๊ณผ ,๋กœ ๊ตฌ๋ถ„๋œ name1.txt ํŒŒ์ผ์ด ์žˆ๋Š”๋ฐ ๋‘ ํŒŒ์ผ์˜ ๊ตฌ์กฐ๋Š” 
id, f_name, l_name, city, phone์œผ๋กœ 5๊ฐœ์˜ ํ•ญ๋ชฉ์ด ๊ฐ๊ฐ ๋“ค์–ด ์žˆ๋‹ค. 
=>์ด ๋‘ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ๊ฐ์˜ ํ…Œ์ด๋ธ”์— ์ €์žฅํ•œ๋‹ค๋ฉด '๊ธฐ์กด์˜ ํ…Œ์ด๋ธ”์„ ๋ณต์‚ฌํ•ด์„œ ์ƒˆ๋กœ์šด ํ…Œ์ด๋ธ”' ๋‘ ๊ฐœ๋กœ ๋งŒ๋“  ๋’ค ์ €์žฅํ•˜๋ฉด ๋œ๋‹ค. ํ…Œ์ด๋ธ” ๋ณต์‚ฌ๋Š” 
create table name_tbl like ubuntu_tbl;๊ณผ
create table name1_tbl like ubuntu_tbl; ํ•ด์ฃผ๋ฉด ๊ธฐ์กด์˜ ubuntu_tbl์„ name_tbl๊ณผ name1_tbl ๋‘๊ฐœ์˜ ๋นˆ ํ…Œ์ด๋ธ”๋กœ ๋งŒ๋“ค์–ด ์ค€๋‹ค.  
  ์ด์–ด์„œ ํ…Œ์ด๋ธ”์— ํŒŒ์ผ๋กœ ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅํ•  ๋•Œ์—๋Š” 
a) set global local_infile=1; ํ•ด์ฃผ๊ณ  

b) load data local infile '/home/centos/name.txt' into table name_tbl
    fields terminated by '\t'          ## Tab ๊ตฌ๋ณ„ 
    lines terminated by '\n'; ์™€ 

c) load data local infile '/home/centos/name.txt' into table name1_tbl
   fields terminated by ','             ## , ๊ตฌ๋ณ„ 
   lines terminated by '\n'; ํ•ด์„œ ์˜ฌ๋ฆฌ๊ณ 
OR DB๋ฅผ ์ง€์ •ํ•ด์„œ ๋กœ๊ทธ์˜จํ•˜์ง€ ์•Š์•˜๋‹ค๋ฉด ๋‹ค์Œ์ฒ˜๋Ÿผ ํ•ด๋„ ๋œ๋‹ค. 
load data local infile '/home/centos/name.txt' into table ubuntu_db.ubuntu_tbl 
fields terminated by '\t'           ## Tab ๊ตฌ๋ณ„  
lines terminated by '\n; ํ•ด์„œ DB_๋ช….Table_๋ช…์‹์œผ๋กœ ์ง€์ •ํ•ด๋„ ๋œ๋‹ค. 

์•ž์—์„œ Tab์œผ๋กœ ๊ตฌ๋ถ„๋œ name.txt์™€ ,๋กœ ๊ตฌ๋ถ„๋œ name1.txt ๋‘ ๊ฐœ์˜ ํŒŒ์ผ์ด ์žˆ์œผ๋ฏ€๋กœ ๊ธฐ์กด์˜ ํ…Œ์ด๋ธ”์—์„œ ๊ตฌ์กฐ๊ฐ€ ๋™์ผํ•œ ํ…Œ์ด๋ธ”์„ ๋ณต์‚ฌํ•œ๋‹ค๋ฉด
a. use centos_db; ํ•ด์ฃผ๊ณ  
b. ๊ธฐ์กด ํ…Œ์ด๋ธ”์—์„œ ํ…Œ์ด๋ธ”์„ ๋ณต์‚ฌํ•ด์˜ค๋Š” ๋ช‡ ๊ฐ€์ง€ ๋ฐฉ์‹์„ ์•Œ์•„๋ณด์ž.
a) ํ…Œ์ด๋ธ” ๊ตฌ์กฐ๋งŒ ๋ณต์‚ฌ
create table name_tbl LIKE centos_tbl; ์™€ 
create table name1_tbl LIKE centos_tbl; ํ•ด์„œ ๋‘ ๊ฐœ์˜ ๋นˆ ํ…Œ์ด๋ธ”์„ ๋งŒ๋“ค์–ด ๋‘”๋‹ค.
b) ๊ธฐ์กด ํ…Œ์ด๋ธ”์—์„œ ๋‚ด์šฉ๋„ ๋ชจ๋‘ ๋ณต์‚ฌํ•ด์„œ ์ƒˆ ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•˜๋ฉด์„œ ๋„ฃ๋Š”๋‹ค๋ฉด 
create table (if not exists) name2_tbl SELECT * FROM CENTOS_TBL;


c) ๊ธฐ์กด ํ…Œ์ด๋ธ”์—์„œ ๋‚ด์šฉ์ค‘ ์ผ๋ถ€๋งŒ ๋ณต์‚ฌํ•ด์„œ ์ƒˆ ํ…Œ์ด๋ธ”์— ๋„ฃ๋Š”๋‹ค๋ฉด 
create table name4_tbl LIKE centos_tbl; ํ•ด์„œ ๋นˆ ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•œ ๋’ค 
insert into name4_tbl (col1, col2, ..) SELECT COL1, COL2, .. FROM CENTOS_TBL; ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.
=>create table name4_tbl SELECT COL1, COL2 FROM CENTOS_TBL; ํ•ด์„œ ํ•œ ๋ฒˆ์— ์ฒ˜๋ฆฌํ•ด๋„ ๋œ๋‹ค.
   ๋น… ๋ฐ์ดํ„ฐ๋ถ„์„์—์„œ ๋งค์šฐ ๋งŽ์€ ํ•ญ๋ชฉ์ด ์žˆ๋Š” ๋ฐ์ดํ„ฐ์‹œํŠธ์—์„œ ๋ถ„์„์— 'ํ•„์š”ํ•œ ํ•ญ๋ชฉ๋งŒ ์ถ”๋ ค์„œ ์ƒˆ๋กœ์šด ํ…Œ์ด๋ธ”๋กœ ๋งŒ๋“  ๋’ค' ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.


  ์•”ํ˜ธํ™” ๋ฐ์ดํ„ฐ ๋งŒ๋“ค๊ธฐ

  ํ…Œ์ด๋ธ”์— ์ž…๋ ฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์•”ํ˜ธํ™”ํ•ด์„œ ์ˆจ๊ธฐ๊ณ  ๋ณตํ˜ธํ™”ํ•ด์„œ ์ฝ์„ ์ˆ˜ ์žˆ๋‹ค. ์•”ํ˜ธํ™”๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ˆจ๊ธฐ๋Š” ๊ฒƒ์ด๊ณ  ํ•ด์‹œ๋Š” ๋ฐ์ดํ„ฐ์˜ ๋ฌด๊ฒฐ์„ฑ์„ ๋ณด๋Š” ๊ฒƒ์ด๋‹ค.
  ์šฐ์„  ์•”ํ˜ธํ™”๋Š” ๋ง ๊ทธ๋Œ€๋กœ ์–ด๋–ค TEXT ๋ฐ์ดํ„ฐ๋ฅผ ์•Œ์•„๋ณผ ์ˆ˜ ์—†๊ฒŒ ์•”ํ˜ธ์ฒ˜๋Ÿผ ๋งŒ๋“œ๋Š” ๊ฒƒ์œผ๋กœ ์˜ˆ๋ฅผ ๋“ค์–ด 'password'๋ผ๋Š” ๋ˆ„๊ตฌ๋‚˜ ์•Œ์•„๋ณผ ์ˆ˜ ์žˆ๋Š” <ํ‰๋ฌธ>์„ ์•”ํ˜ธํ™”ํ•˜๋ฉด ‘0D15222D3D8E40ECCE7AEDC3B8C4280D’์‹์œผ๋กœ ๋ณ€ํ•˜๊ฒŒ ๋˜๊ณ , ๋ณตํ˜ธํ™”๋Š” ์ด๊ฒƒ์„ ๋‹ค์‹œ 'password'๋ผ๋Š” <ํ‰๋ฌธ>์œผ๋กœ ๋˜๋Œ๋ฆฌ๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค. 
  ์•”ํ˜ธํ™”์—๋Š” ๋‹จ๋ฐฉํ–ฅ๊ณผ ์–‘๋ฐฉํ–ฅ์ด ์žˆ๋Š”๋ฐ, 


โˆŽ ๋‹จ๋ฐฉํ–ฅ ์•”ํ˜ธํ™”๋Š” ์ฃผ๋กœ DB ์‚ฌ์šฉ์ž ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ์ €์žฅ๋˜์–ด ์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ์ €์žฅ ์ดํ›„์— ๋‹ค์‹œ๋Š” <ํ‰๋ฌธ>์œผ๋กœ ๋ณผ ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ๋กœ์จ ์ผ๋ฐ˜์ ์œผ๋กœ MySQL ๋‚ด์—์„œ ๋ณด๋ฉด ๋Œ€ํ‘œ์ ์œผ๋กœ md5(32 HEX) ๋˜๋Š” sha1(40 HEX) ๋“ฑ์˜ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
select md5(‘password’);๋‚˜ select sha1(‘password’);์‹์œผ๋กœ ์‚ฌ์šฉํ•˜๋ฉด ํ‰๋ฌธ์žฅ password์˜ ํ•ด์‹œ๋œ ๊ฐ’์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.  


โˆŽ ์–‘๋ฐฉํ–ฅ ์•”ํ˜ธํ™”๋Š” ์ด๋ฉ”์ผ ์ฃผ์†Œ๋‚˜ ์ „ํ™”๋ฒˆํ˜ธ, ์ „์ž์„œ๋ช… ๋“ฑ๊ณผ ๊ฐ™์ด ๋‹ค์‹œ ์‚ฌ์šฉํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์–ด ์•”ํ˜ธํ™” ์ดํ›„ ๋‹ค์‹œ ๋ณตํ˜ธํ™”ํ•˜์—ฌ <ํ‰๋ฌธ>์œผ๋กœ ๋ณผ ํ•„์š”๊ฐ€ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. ์–‘๋ฐฉํ–ฅ ์•”ํ˜ธํ™”๋Š” AES_ENCRYPT(์•”ํ˜ธํ™”)์™€ AES_DECRYPT(๋ณตํ˜ธํ™”) ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด์„œ ์ง„ํ–‰ํ•˜๋Š”๋ฐ 128๋น„ํŠธ ๊ธธ์ด๋กœ ์ธ์ฝ”๋”ฉ ๋˜๊ณ , ์ˆ˜์ •ํ•˜๋ฉด 256๋น„ํŠธ๊นŒ์ง€ ํ™•์žฅํ•  ์ˆ˜ ์žˆ๋‹ค. 

InnoDB๋ž‘ MyISAM์„ ๊ฐ€์žฅ ๋งŽ์ด ์“ด๋‹ค๊ณ  

 

 

=>password๋ฅผ AES_ENCRYPT() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์„œ hex(AES_ENCRYPT('์•”ํ˜ธํ™”_ํ• _๋ฌธ์ž์—ด', '์•”ํ˜ธํ™”_ํ‚ค')) ํ˜•์‹์œผ๋กœ ์•”ํ˜ธํ™”ํ•ด์„œ ์ €์žฅํ•˜๊ณ , 


    ๋ณตํ˜ธํ™”ํ•˜๋Š”๋ฐ ์—ญ์‹œ AES_DECRYPT() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์„œ AES_DECRYPT(unhex(์•”ํ˜ธํ™”๋œ_๊ฐ’), '์•”ํ˜ธํ™”_ํ‚ค') ํ˜•์‹์œผ๋กœ ํ•ด์ค€๋‹ค.



  drop database DB_name; ๊ณผ drop table TBL_name; ํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ํ…Œ์ด๋ธ”์„ ์—†์•จ ์ˆ˜ ์žˆ๋‹ค.

  ํ…Œ์ด๋ธ” ๋‚ด์˜ ๋ฐ์ดํ„ฐ ์‚ญ์ œ
โ–ช DELETE : ์ „์ฒด ๋ฐ์ดํ„ฐ๋‚˜ ์ผ๋ถ€ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•˜๊ณ  ํ…Œ์ด๋ธ”์€ ๊ทธ๋Œ€๋กœ ๋†” ๋‘ , ์‚ญ์ œํ•œ ๋ฐ์ดํ„ฐ ๋ณต์› ๊ฐ€๋Šฅ 
โ–ช TRUNCATE : ์ „์ฒด ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•˜๊ณ  ํ…Œ์ด๋ธ”์€ ๊ทธ๋Œ€๋กœ ๋†”๋‘ , ์ธํ…์Šค ๋“ฑ๋„ ์‚ญ์ œ, ์‚ญ์ œํ•œ ๋‚ด์šฉ ๋ณต์› ๋ถˆ๊ฐ€