Search

DCL - ๋ฐ์ดํ„ฐ ์ œ์–ด์–ด

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)

์—ฌ๋Ÿฌ ๊ถŒํ•œ์„ ๊ทธ๋ฃน์œผ๋กœ ๋ฌถ์–ด ๊ด€๋ฆฌํ•˜๋Š” ํ‚ค์›Œ๋“œ
MySQL 8.0๋ถ€ํ„ฐ ๋กค(Role) ๊ธฐ๋Šฅ์ด ๋„์ž…

๋กค ์ƒ์„ฑ

CREATE ROLE '๋กค ์ด๋ฆ„';
SQL
๋ณต์‚ฌ

๋กค์— ๊ถŒํ•œ ๋ถ€์—ฌ

GRANT SELECT, INSERT ON DB๋ช….ํ…Œ์ด๋ธ”๋ช… TO '๋กค ์ด๋ฆ„';
SQL
๋ณต์‚ฌ
ํ…Œ์ด๋ธ”๋ช… ๋Œ€์‹  โ€˜*โ€™ ๋กœ ์ง€์ •ํ•˜๋ฉด ๋ชจ๋“  ํ…Œ์ด๋ธ”์„ ์ง€์ •

์‚ฌ์šฉ์ž์—๊ฒŒ ๋กค ๋ถ€์—ฌ

GRANT '๋กค ์ด๋ฆ„' TO '์‚ฌ์šฉ์ž๋ช…'@'localhost';
SQL
๋ณต์‚ฌ

๊ธฐ๋ณธ ๋กค ์„ค์ •

SET DEFAULT ROLE '๋กค ์ด๋ฆ„' TO '์‚ฌ์šฉ์ž๋ช…'@'localhost';
SQL
๋ณต์‚ฌ