DDL์ ํตํ ๋ฐ์ดํฐ ๋ฒ ์ด์ค ๊ณ์ ์์ฑํ๊ธฐ, db ์๊ฒฉ ์ ์ (create user)
mysql, mariadb์์ ๋ฐ์ดํฐ ๋ฒ ์ด์ค ๊ณ์ ์ ์์ฑํด ๋ณด์.
์๋์ ์ฟผ๋ฆฌ๋ฌธ์ ํตํด ๊ณ์ ์ ์์ฑํ ์ ์๋ค.
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
'username' : ๊ณ์ ๋ช
'host' : ํด๋น ๊ณ์ ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฐ๊ฒฐํ ์ ์๋ ํธ์คํธ ์ง์
'host'๋ฅผ ์ค์ ํ๋ ๋ฐฉ๋ฒ์๋ ์ฌ๋ฌ ๋ฐฉ์์ด ์๋ค.
localhost
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password'; ๋ผ๋ฉด, username ๊ณ์ ์ ๋ก์ปฌ ๋จธ์ ์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ฒ์ ์ฐ๊ฒฐํ ๋ ์ฌ์ฉ๊ฐ๋ฅํ๋ค. ์ผ๋ฐ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ฐ์ ์๋ฒ์์ ์คํ๋๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ์ฉ๋๋ค.
์์ผ๋์นด๋ '%'
CREATE USER 'username'@'%' IDENTIFIED BY 'password'; ์ผ ๊ฒฝ์ฐ, '%'๋ ์์ผ๋์นด๋๋ก ์ด๋ค ํธ์คํธ์์๋ ์ฐ๊ฒฐ์ด ๊ฐ๋ฅํ๋ค. ํด๋น ์ค์ ์ db์ ์๊ฒฉ ์ ์ ์ ์ฌ์ฉ๋ ์ ์์ง๋ง, ์ ์ ํ ๊ด๋ฆฌ๋์ง ์๋๋ค๋ฉด ๋ณด์์ ์ํํ ์ ์๋ค.
ํน์ ip ์ฃผ์, ์๋ธ๋ท ๋ง์คํฌ
CREATE USER 'username'@'192.168.1.%' IDENTIFIED BY 'password'; ์ ๊ฒฝ์ฐ, ํน์ ์๋ธ๋ท ๋ด์ ๋ชจ๋ IP ์ฃผ์์์ ์ฐ๊ฒฐ์ ํ์ฉํ ์ ์๋ค. ํน์ ๋คํธ์ํฌ ๋ด์ ๋ฒ์์ ์๋ ip ์ฃผ์๋ก๋ถํฐ์ ์ฐ๊ฒฐ์ ํ์ฉํ๋๋ฐ ์ ์ฉํ๋ค.
ํธ์คํธ ์ด๋ฆ
CREATE USER 'username'@'myhost.example.com' IDENTIFIED BY 'password'; ๋ ์ฌ์ฉ์๊ฐ ํน์ ๋๋ฉ์ธ ์ด๋ฆ์ ๊ฐ์ง ์ฅ์น์์ ์ฐ๊ฒฐํ ์ ์๋๋ก ํ ์ ์๋ค. MySQL(MariaDB) ์๋ฒ๋ ์ฌ์ฉ์๊ฐ ์ฐ๊ฒฐํ ๋ ํธ์คํธ ์ด๋ฆ์ ip ์ฃผ์๋ก ๋ณํํ๋ค.
๊ณ์ ์์ฑํ๊ธฐ
์ฐ๋ถํฌ db ์๋ฒ์์ create user ‘testuser3’@‘localhost’ identified by ‘password’; ๋ก ๊ณ์ ์ ํ๋ ์์ฑํด ์ฃผ์๋ค.
(๊ณ์ ์ด๋ฆ : testuser3, host: localhost์์๋ง(์ฆ, ubuntu db server ๋ด์์๋ง ๊ฐ๋ฅ), ๋น๋ฐ๋ฒํธ๋ 'password'๋ก ์ค์ ํ ์ํฉ์ด๋ค.)
๊ณ์ ์์ฑ ์ดํ ๋ณ๊ฒฝ ์ฌํญ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ฒ๊ฐ ์ธ์ํ๊ฒ ํด ์ฃผ๊ธฐ ์ํด flush privileges; ๋ฅผ ์คํํ์.
์ด๋ CREATE USER, GRANT, REVOKE, DROP USER์ ๊ฐ์ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์ ๊ณ์ ์ด๋ ๊ถํ ์ค์ ์ ์ง์ ๋ณ๊ฒฝํ์ ๋, ๋ณ๊ฒฝ ์ฌํญ์ด ์ฆ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ฒ์ ๋ฐ์๋์ง ์๊ธฐ ๋๋ฌธ์ด๋ค.
*flush privileges์ ์ญํ
๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ฒ๋ ์ฑ๋ฅ ์ต์ ํ๋ฅผ ์ํด ๊ถํ ๊ฒ์ฌ ์ ๋ณด๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์บ์ํ๋ค. FLUSH PRIVILEGES; ๋ช ๋ น์ ์บ์๋ฅผ ๋น์ฐ๊ณ , ๊ถํ ํ ์ด๋ธ์์ ์ต์ ์ ๋ณด๋ฅผ ๋ค์ ์ฝ์ด ๋ค์ฌ ์บ์๋ฅผ ๊ฐฑ์ ํด ์ค๋ค.
๋, ์์คํ ์ ๋ณด์์ ๊ฐํํ๊ณ , ์ฌ์ฉ์ ๋ฐ ๊ถํ ์ค์ ์ ์ผ๊ด์ฑ์ ์ ์งํ๊ธฐ ์ํด, ๊ถํ ๋ณ๊ฒฝ ์์ ํ์๋ ํญ์ FLUSH PRIVILEGES;๋ฅผ ์คํํ๋ ๊ฒ์ด ๊ถ์ฅ๋๋ค. ์ด๋ฅผ ํตํด, ๊ถํ ๊ด๋ จ ๋ณ๊ฒฝ ์ฌํญ์ ์ฆ์ ์ ์ฉ์ํค๊ณ , ์์์น ๋ชปํ ์ ๊ทผ ๊ถํ ๋ฌธ์ ๋ฅผ ๋ฐฉ์งํ ์ ์๋ค.
์ด์ ์ฐ๋ถํฌ db ์๊ฒฉ์ ์์ ์ํด ์ฐ๋ถํฌ ๋คํธ์ํฌ์ ํ ๋น๋ ipv4 ์ฃผ์๋ฅผ ifconfig ๋ช ๋ น์ด๋ก ํ์ธํด ์ค๋ค. ex) inet 192.168.64.2
์ด์ testuser3๋ก ์๊ฒฉ ์ ์์ ์๋ํด ๋ณด์. ํฐ๋ฏธ๋(iterm2) ์ฐฝ์์ mysql -h '์ ์ ip์ฃผ์' -u ๊ณ์ ๋ช -p์ ์ ๋ ฅํ๋ค.
ํ์ง๋ง ์์ ๊ฐ์ด 'access denied for user'์ ์๋ฌ๊ฐ ๋ฐ์ํ๋ฉด์ ์๊ฒฉ์ ์์ ์คํจํ๋ค.
์ด๋ ๊ณ์ ์ 'localhost'๋ก create ํ๊ธฐ ๋๋ฌธ์ด๋ค. (๋ง์ฝ ๊ณ์ ์ '%'๋ก create ํ๋ค๋ฉด ํด๋น ๊ณ์ ์ผ๋ก๋ ์๊ฒฉ ์ ์์ด ๊ฐ๋ฅํ๋ค.)
์ฐ๋ถํฌ local์์๋ 'testuser3' ๊ณ์ ์ผ๋ก ์ ์์ด ๊ฐ๋ฅํ๋ค๋ ๊ฒ์ด๋ค.
์ฐ๋ถํฌ local์ ssh ์ ์์ ํ ๋ค์ ๋ค์ ์๋ํด๋ณด๋ฉด ์ ์์ ์ผ๋ก ์ ์์ด ๋๋ ๊ฒ์ ๋ณผ ์ ์๋ค.
(ssh ์ ์ : ssh ์ฐ๋ถํฌ์ฌ์ฉ์๊ณ์ ๋ช @ํด๋น์ฅ์น IP์ฃผ์)
์๋ก ์์ฑํ ๊ณ์ ์ผ๋ก show databases; ์ ๋ ฅํด ๋ณด๋ฉด
๋ฃจํธ ๊ณ์ ๊ณผ๋ ๋ฌ๋ฆฌ ์ ์ ์์ database๋ง์ ๋ณผ ์ ์๋ค. ์ด๋ ๊ณ์ ๊ถํ์ ๋ฐ๋ก ์ค์ ํ์ง ์์๊ธฐ ๋๋ฌธ์ด๋ค.
๋ฃจํธ ๊ณ์ ์ผ๋ก ์ ์ ์ ์๋์ ๊ฐ์ด 4๊ฐ์ database๋ฅผ ๋ณผ ์ ์๋ค.
~$ mysql -u root -p
mysql database์์ ์๋์ ๊ฐ์ด user, host ๋ฑ์ ๊ณ์ ์ ๋ณด๋ค์ ๋ณผ ์ ์๋ค.
์ฌ๊ธฐ์๋ ๋ณผ ์ ์๋ฏ์ด ์๋ก ์์ฑํด ์ฃผ์๋ 'testuser3' ๊ณ์ ์ localhost์์๋ง ์ ์์ด ๊ฐ๋ฅํ๋ค๋ ์ ๋ณด๋ฅผ ๋ณผ ์ ์๋ค.
์๋์ ๊ฐ์ด 'testuser4' ๊ณ์ ์ ๋ง๋ค๊ณ ์์ผ๋์นด๋ '%'๋ฅผ ํตํด ์ด๋์๋ ์ ์์ ๊ฐ๋ฅํ๊ฒ ํ๊ณ ๋น๊ตํด ๋ณด์.
์ธ๋ถ์์ ์๋์ ๊ฐ์ด ์๊ฒฉ ์ ์์ ์๋ํด ๋ณด๋ฉด ์ด๋ฒ์๋ ์๋ฌ ์์ด ์ ์์ด ๊ฐ๋ฅํ ๊ฒ์ ๋ณผ ์ ์๋ค.
๊ทธ๋ฌ๋ show databases; ๋ช ๋ น์ ๊ถํ์ด ์ ํ์ ์ธ ๊ฒ์ ์ ์ ์๋ค. ํน์ db์ ๋ํด์ ํด๋น ๊ณ์ ์ ๊ถํ ๋ถ์ฌ๋ฅผ ํด์ฃผ์ด์ผ ์กฐํ๊ฐ ๊ฐ๋ฅํ๋ค.
๊ณ์ ๊ถํ ์ค์ ์ ๋ํ ๋ด์ฉ์ ๋ค์ ๊ธ์์ ์ด์ด์ ๋ค๋ฃจ์๋ค.
https://9taetae9.tistory.com/44
DDL์ ํตํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ณ์ ๊ถํ ์ค์ (grant all privileges on)
์ฐ์ ํ ์คํธ๋ฅผ ์ํด ์ฐ๋ถํฌ local์์ db1 ๋ฐ์ดํฐ ๋ฒ ์ด์ค๋ฅผ ์์ฑํด ์ฃผ์๋ค. testuser4๋ก ์๊ฒฉ ์ ์์ ํ ๋ค, show databases; ๋ช ๋ น์ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๋ฉด root ๊ณ์ ์์ ๋ณด์ด๋ 5๊ฐ์ databases๊ฐ ์๋ 1๊ฐ์ db๋ง ์กฐํ
9taetae9.tistory.com