SQL - DCL (Data Control Language)
๋ฐ์ดํฐ ์ ์ด์ด (Data Control Language)
โข
GRANT
โข
REVOKE
๊ถํ ๋ถ์ฌ
GRANT ๊ถํ1, ๊ถํ2, ... ON DB๋ช
.ํ
์ด๋ธ๋ช
TO '์ฌ์ฉ์๋ช
'@'ํธ์คํธ';
SQL
๋ณต์ฌ
์์:
GRANT SELECT, INSERT ON mydb.users TO 'aloha'@'localhost';
SQL
๋ณต์ฌ
๊ถํ ์ข
๋ฅ (MySQL ์ฃผ์ ๊ถํ)
๊ตฌ๋ถ | ์ค๋ช
|
SELECT | ํ
์ด๋ธ์์ ๋ฐ์ดํฐ ์กฐํ |
INSERT | ํ
์ด๋ธ์ ๋ฐ์ดํฐ ์ฝ์
|
UPDATE | ํ
์ด๋ธ ๋ฐ์ดํฐ ์์ |
DELETE | ํ
์ด๋ธ ๋ฐ์ดํฐ ์ญ์ |
CREATE | ๋ฐ์ดํฐ๋ฒ ์ด์ค/ํ
์ด๋ธ ์์ฑ |
DROP | ๋ฐ์ดํฐ๋ฒ ์ด์ค/ํ
์ด๋ธ ์ญ์ |
ALTER | ํ
์ด๋ธ ๊ตฌ์กฐ ๋ณ๊ฒฝ |
INDEX | ์ธ๋ฑ์ค ์์ฑ |
EXECUTE | ์ ์ฅ ํ๋ก์์ /ํจ์ ์คํ |
ALL PRIVILEGES | ๋ชจ๋ ๊ถํ ๋ถ์ฌ |
์ฌ์ฉ์ ์์ฑ
CREATE USER '์ฌ์ฉ์๋ช
'@'ํธ์คํธ' IDENTIFIED BY '๋น๋ฐ๋ฒํธ';
SQL
๋ณต์ฌ
์์:
CREATE USER 'aloha'@'localhost' IDENTIFIED BY '123456';
SQL
๋ณต์ฌ
๊ถํ ๋ถ์ฌ ์์
GRANT SELECT, INSERT ON DB๋ช
.* TO '์ฌ์ฉ์๋ช
'@'ํธ์คํธ';
SQL
๋ณต์ฌ
GRANT ALL PRIVILEGES ON mydb.* TO 'aloha'@'%';
SQL
๋ณต์ฌ
โข
mydb.*: ํน์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ด ๋ชจ๋ ํ
์ด๋ธ์ ๋ํด ๊ถํ ๋ถ์ฌ
โข
'%': ๋ชจ๋ ํธ์คํธ์์ ์ ์ ํ์ฉ
โข
'localhost' : ํ์ฌ PC ์์ ์ ์ ํ์ฉ
๊ถํ ํด์ - REVOKE
REVOKE ๊ถํ1, ๊ถํ2 ON ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ช
.ํ
์ด๋ธ๋ช
FROM '์ฌ์ฉ์๋ช
'@'ํธ์คํธ';
SQL
๋ณต์ฌ
์์:
REVOKE SELECT, INSERT ON mydb.users FROM 'aloha'@'localhost';
SQL
๋ณต์ฌ
๋กค (ROLE)
์ฌ๋ฌ ๊ถํ์ ๊ทธ๋ฃน์ผ๋ก ๋ฌถ์ด ๊ด๋ฆฌํ๋ ํค์๋
๋กค ์์ฑ
CREATE ROLE '๋กค ์ด๋ฆ';
SQL
๋ณต์ฌ
๋กค์ ๊ถํ ๋ถ์ฌ
GRANT SELECT, INSERT ON DB๋ช
.ํ
์ด๋ธ๋ช
TO '๋กค ์ด๋ฆ';
SQL
๋ณต์ฌ
์ฌ์ฉ์์๊ฒ ๋กค ๋ถ์ฌ
GRANT '๋กค ์ด๋ฆ' TO '์ฌ์ฉ์๋ช
'@'localhost';
SQL
๋ณต์ฌ
๊ธฐ๋ณธ ๋กค ์ค์
SET DEFAULT ROLE '๋กค ์ด๋ฆ' TO '์ฌ์ฉ์๋ช
'@'localhost';
SQL
๋ณต์ฌ