๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
IT์ž๊ฒฉ์ฆ ๊ณต๋ถ€/SQLD ์ž๊ฒฉ์ฆ

[SQL ์ „๋ฌธ๊ฐ€] ๊ณผ๋ชฉII. ์ œ3์žฅ ๊ด€๋ฆฌ ๊ตฌ๋ฌธ

by yunamom 2022. 4. 21.
๋ฐ˜์‘ํ˜•

๊ณผ๋ชฉ II. SQL ๊ธฐ๋ณธ๊ณผ ํ™œ์šฉ

๐Ÿ“–์ œ3์žฅ ๊ด€๋ฆฌ ๊ตฌ๋ฌธ

  • ์ œ1์ ˆ DML (๋ฐ์ดํ„ฐ ์ž…๋ ฅโˆ™์ˆ˜์ •โˆ™์‚ญ์ œ)
  • ์ œ2์ ˆ TCL (๋ณ€๊ฒฝ๋œ ๋ฐ์ดํ„ฐ ๋ฐ˜์˜โˆ™์ทจ์†Œ)
  • ์ œ3์ ˆ DDL (ํ…Œ์ด๋ธ” ๊ตฌ์กฐ ์ƒ์„ฑโˆ™๋ณ€๊ฒฝโˆ™์‚ญ์ œ)
  • ์ œ4์ ˆ DCL (๋ฐ์ดํ„ฐ ๊ถŒํ•œ ๋ถ€์—ฌโˆ™ํšŒ์ˆ˜)
  • ์žฅ ์š”์•ฝ
  • ์—ฐ์Šต๋ฌธ์ œ

by yunamom

โœจ์ œ1์ ˆ DML


1. INSERT 

โ—พ๏ธ๋‹จ์ผ ํ–‰ INSERT ๋ฌธ์€ VALUES ์ ˆ์„ ํฌํ•จํ•˜๋ฉฐ, ํ•œ ๋ฒˆ์— ํ•œ ํ–‰๋งŒ ์ž…๋ ฅ๋œ๋‹ค.

INSERT INTO ํ…Œ์ด๋ธ”๋ช… [(์นผ๋Ÿผ1, ์นผ๋Ÿผ2, ...)] VALUES (๊ฐ’1, ๊ฐ’2, ...);

โ—พ๏ธ์„œ๋ธŒ ์ฟผ๋ฆฌ๋ฅผ ์ด์šฉํ•œ ๋‹ค์ค‘ ํ–‰ INSERT ๋ฌธ

INSERT INTO ํ…Œ์ด๋ธ”๋ช… [(์นผ๋Ÿผ1, ์นผ๋Ÿผ2, ...)]
์„œ๋ธŒ ์ฟผ๋ฆฌ;
-- [์˜ˆ์ œ]

INSERT
  INTO TEAM (TEAM_ID, REGION_NAME, TEAM_NAME, ORIG_YYYY, STADIUM_ID)
SELECT REPLACE(TEAM_ID, 'K', 'A') AS TEAM_ID
     , REGION_NAME, REGION_NAME || '์˜ฌ์Šคํƒ€' AS TEAM_NAME
     , 2019 AS ORIG_YYYY, STADIUM_ID
  FROM TEAM
WHERE REGION_NAME IN ('์„ฑ๋‚จ', '์ธ์ฒœ');

2 ๊ฐœ์˜ ํ–‰์ด ๋งŒ๋“ค์–ด์กŒ์Šต๋‹ˆ๋‹ค.

2. UPDATE 

โ—พ๏ธ๋ฐ์ดํ„ฐ ์ˆ˜์ •

UPDATE ํ…Œ์ด๋ธ”๋ช…
   SET ์ˆ˜์ •ํ•  ์นผ๋Ÿผ๋ช…1 = ์ˆ˜์ •๋  ์ƒˆ๋กœ์šด ๊ฐ’1
   [ , ์ˆ˜์ •ํ•  ์นผ๋Ÿผ๋ช…2 = ์ˆ˜์ •๋  ์ƒˆ๋กœ์šด ๊ฐ’2 ]
[ WHERE ์ˆ˜์ • ๋Œ€์ƒ ์‹๋ณ„ ์กฐ๊ฑด์‹ ] ;
-- [์˜ˆ์ œ] WHERE ์ ˆ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉด ํ…Œ์ด๋ธ”์˜ ์ „์ฒด ๋ฐ์ดํ„ฐ๊ฐ€ ์ˆ˜์ •๋œ๋‹ค. (์ฃผ์˜)

UPDATE PLAYER
   SET BACK_NO = 99;
   
480 ํ–‰์ด ๊ฐฑ์‹ ๋์Šต๋‹ˆ๋‹ค.

-- [์˜ˆ์ œ 2] 

UPDATE PLAYER
  SET POSITION = 'MF'
WHERE POSITION IS NULL;

3 ํ–‰์ด ๊ฐฑ์‹ ๋์Šต๋‹ˆ๋‹ค.

3. DELETE 

โ—พ๏ธ๋ฐ์ดํ„ฐ ์‚ญ์ œ (*์ฃผ์˜ : WHERE ์ ˆ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์„์‹œ ํ…Œ์ด๋ธ”์˜ ์ „์ฒด ๋ฐ์ดํ„ฐ๊ฐ€ ์‚ญ์ œ๋œ๋‹ค.)

DELETE [FROM] ํ…Œ์ด๋ธ”๋ช…
[WHERE ์‚ญ์ œ ๋Œ€์ƒ ์‹๋ณ„ ์กฐ๊ฑด์‹];
-- [์˜ˆ์ œ] ์ฃผ์˜ : WHERE ์ ˆ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์„์‹œ ํ…Œ์ด๋ธ”์˜ ์ „์ฒด ๋ฐ์ดํ„ฐ๊ฐ€ ์‚ญ์ œ๋œ๋‹ค.

DELETE FROM PLAYER;

480ํ–‰์ด ์‚ญ์ œ๋์Šต๋‹ˆ๋‹ค.

-- [์˜ˆ์ œ 2] 

DELETE PLAYER
  WHERE POSITION = 'DF'
     AND JOIN_YYYY < 2010;
     
35ํ–‰์ด ์‚ญ์ œ๋์Šต๋‹ˆ๋‹ค.

4. MERGE 

โ—พ๏ธMERGE ๋ฌธ์„ ์‚ฌ์šฉํ•˜๋ฉด ์ƒˆ๋กœ์šด ํ–‰์„ ์ž…๋ ฅํ•˜๊ฑฐ๋‚˜, ๊ธฐ์กด ํ–‰์„ ์ˆ˜์ •ํ•˜๋Š” ์ž‘์—…์„ ํ•œ ๋ฒˆ์— ํ•  ์ˆ˜ ์žˆ๋‹ค.

MERGE
 INTO ํƒ€๊ฒŸ ํ…Œ์ด๋ธ”๋ช…
USING ์†Œ์Šค ํ…Œ์ด๋ธ”๋ช…
   ON (์กฐ์ธ ์กฐ๊ฑด์‹)
 WHEN MATCHED THEN
    UPDATE
       SET ์ˆ˜์ •ํ•  ์นผ๋Ÿผ๋ช…1 = ์ˆ˜์ •๋  ์ƒˆ๋กœ์šด ๊ฐ’1
       [ , ์ˆ˜์ •ํ•  ์นผ๋Ÿผ๋ช…2 = ์ˆ˜์ •๋  ์ƒˆ๋กœ์šด ๊ฐ’2, ... ]
 WHEN NOT MATCHED THEN
    INSERT [(์นผ๋Ÿผ1, ์นผ๋Ÿผ2, ...)]
    VALUES (๊ฐ’1, ๊ฐ’2, ...);
MERGE ๋ฌธ ์„ค๋ช…
MERGE MERGE ๋‹ค์Œ์— ์ž…๋ ฅโˆ™์ˆ˜์ • ๋ผ์•ผ ํ•  ํƒ€๊ฒŸ ํ…Œ์ด๋ธ”๋ช…์„ ์ž…๋ ฅ
USING ์ž…๋ ฅโˆ™์ˆ˜์ •์— ์‚ฌ์šฉํ•  ์†Œ์Šค ํ…Œ์ด๋ธ”์„ ์ž…๋ ฅ
ON ํƒ€๊นƒ ํ…Œ์ด๋ธ”๊ณผ ์†Œ์Šค ํ…Œ์ด๋ธ” ๊ฐ„์˜ ์กฐ์ธ ์กฐ๊ฑด์‹์„ ๊ธฐ์ˆ ํ•ด, ์ž…๋ ฅโˆ™์ˆ˜์ •ํ•  ๋Œ€์ƒ์„ ๊ฒฐ์ •
WHEN MATCHED THEN ON ์ ˆ์˜ ์กฐ์ธ ์กฐ๊ฑด์— ๋”ฐ๋ผ ์„ฑ๊ณตํ•œ ํ–‰๋“ค์— ๋Œ€ํ•ด์„œ ์•„๋ž˜ UPDATE ๊ตฌ๋ฌธ์„ ์ˆ˜ํ–‰
WHEN NOT MATCHED THEN ์กฐ์ธ์— ์‹คํŒจํ•œ ํ–‰๋“ค์— ๋Œ€ํ•ด์„œ๋Š” ์•„๋ž˜ INSERT ๊ตฌ๋ฌธ์„ ์ˆ˜ํ–‰

 

โœจ์ œ2์ ˆ TCL


1. ํŠธ๋žœ์žญ์…˜ ๊ฐœ์š” 

โ—พ๏ธํŠธ๋žœ์žญ์…˜(Transaction) ์ด๋ž€ ๋ฐ€์ ‘ํžˆ ๊ด€๋ จ๋ผ ๋ถ„๋ฆฌ๋  ์ˆ˜ ์—†๋Š” ํ•œ ๊ฐœ ์ด์ƒ์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์กฐ์ž‘์„ ๊ฐ€๋ฆฌํ‚จ๋‹ค. 


ํ•˜๋‚˜์˜ ํŠธ๋žœ์žญ์…˜์—๋Š” ํ•˜๋‚˜ ์ด์ƒ์˜ SQL ๋ฌธ์žฅ์ด ํฌํ•จ๋œ๋‹ค. ํŠธ๋žœ์žญ์…˜์€ ๋ถ„ํ• ํ•  ์ˆ˜ ์—†๋Š” ์ตœ์†Œ์˜ ๋‹จ์œ„๋‹ค.
์€ํ–‰์—์„œ์˜ ๊ณ„์ขŒ์ด์ฒด ์ƒํ™ฉ์„ ์—ฐ์ƒํ•˜๋ฉด ํŠธ๋žœ์žญ์…˜์„ ์ดํ•ดํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋œ๋‹ค.

์˜ˆ )
- STEP1. 100๋ฒˆ ๊ณ„์ขŒ์˜ ์ž”์•ก์—์„œ 10,000์›์„ ๋บ€๋‹ค.
- STEP2. 200๋ฒˆ ๊ณ„์ขŒ์˜ ์ž”์•ก์— 10,000์›์„ ๋”ํ•œ๋‹ค.

ํŠธ๋žœ์žญ์…˜์˜ ํŠน์„ฑ ์„ค๋ช…
๐Ÿ’ก์›์ž์„ฑ (์ค‘์š”)
(atomicity)
ํŠธ๋žœ์žญ์…˜์— ์ •์˜๋œ ์—ฐ์‚ฐ๋“ค์€ ๋ชจ๋‘ ์„ฑ๊ณต์ ์œผ๋กœ ์‹คํ–‰๋˜๋˜์ง€ ์•„๋‹ˆ๋ฉด ์ „ํ˜€ ์‹คํ–‰๋˜์ง€ ์•Š์€ ์ƒํƒœ๋กœ ๋‚จ์•„ ์žˆ์–ด์•ผ ํ•œ๋‹ค(all or nothing)
์ผ๊ด€์„ฑ
(consistency)
ํŠธ๋žœ์žญ์…˜์ด ์‹คํ–‰๋˜๊ธฐ ์ „์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋‚ด์šฉ์ด ์ž˜๋ชป ๋ผ ์žˆ์ง€ ์•Š๋‹ค๋ฉด ํŠธ๋žœ์žญ์…˜์ด ์‹คํ–‰๋œ ์ดํ›„์—๋„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋‚ด์šฉ์— ์ž˜๋ชป์ด ์žˆ์œผ๋ฉด ์•ˆ ๋œ๋‹ค.
๊ณ ๋ฆฝ์„ฑ
(isolation)
ํŠธ๋žœ์žญ์…˜์ด ์‹คํ–‰๋˜๋Š” ๋„์ค‘์— ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์˜ ์˜ํ–ฅ์„ ๋ฐ›์•„ ์ž˜๋ชป๋œ ๊ฒฐ๊ณผ๋ฅผ ๋งŒ๋“ค์–ด์„œ๋Š” ์•ˆ ๋œ๋‹ค.
์ง€์†์„ฑ
(durability)
ํŠธ๋žœ์žญ์…˜์ด ์„ฑ๊ณต์ ์œผ๋กœ ์ˆ˜ํ–‰๋˜๋ฉด, ๊ทธ ํŠธ๋žœ์žญ์…˜์ด ๊ฐฑ์‹ ํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋‚ด์šฉ์€ ์˜๊ตฌ์ ์œผ๋กœ ์ €์žฅ๋œ๋‹ค.

๊ณ„์ขŒ์ด์ฒด๋Š” ํ•œ ๊ณ„์ขŒ์—์„œ ํ˜„๊ธˆ์ด ์ธ์ถœ๋œ ํ›„์— ๋‹ค๋ฅธ ๊ณ„์ขŒ๋กœ ์ž…๊ธˆ๋˜๋Š”๋ฐ, ํ˜„๊ธˆ์ด ์ธ์ถœ๋˜๊ธฐ ์ „์— ๋‹ค๋ฅธ ๊ณ„์ขŒ์— ์ž…๊ธˆ๋˜๋Š”๊ฒƒ์€ ๋ฌธ์ œ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด์ฒด๊ฐ€ ๊ฒฐ์ •๋˜๊ธฐ ์ „๊นŒ์ง€๋Š” ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ์ด ๊ณ„์ขŒ์˜ ์ •๋ณด๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๋‹ค. 
์ด๊ฒƒ์„ ๋ณดํ†ต ๋ฌธ์— ์ž๋ฌผ์‡ ๋ฅผ ์ฑ„์šฐ๋“ฏ์ด ํ•œ๋‹ค๊ณ  ํ•ด ์ž ๊ธˆ(LOCKING)์ด๋ผ๊ณ  ํ‘œํ˜„ํ•œ๋‹ค.

ํŠธ๋žœ์žญ์…˜์˜ ํŠน์„ฑ(ํŠนํžˆ ์›์ž์„ฑ)์„ ์ถฉ์กฑํ•˜๊ธฐ ์œ„ํ•ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๋‹ค์–‘ํ•œ ๋ ˆ๋ฒจ์˜ ์ž ๊ธˆ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค. ์ž ๊ธˆ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ํŠธ๋žœ์žญ์…˜์ด ์ˆ˜ํ–‰ํ•˜๋Š” ๋™์•ˆ ํŠน์ • ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด์„œ ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์ด ๋™์‹œ์— ์ ‘๊ทผํ•˜์ง€ ๋ชปํ•˜๋„๋ก ์ œํ•œํ•˜๋Š” ๊ธฐ๋ฒ•์ด๋‹ค. ์ž ๊ธˆ์ด ๊ฑธ๋ฆฐ ๋ฐ์ดํ„ฐ๋Š” ์ž ๊ธˆ์„ ์‹คํ–‰ํ•œ ํŠธ๋žœ์žญ์…˜๋งŒ ๋…์ ์ ์œผ๋กœ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ณ , ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์œผ๋กœ๋ถ€ํ„ฐ ๊ฐ„์„ญ์ด๋‚˜ ๋ฐฉํ•ด๋ฅผ ๋ฐ›์ง€ ์•Š๋Š” ๊ฒƒ์ด ๋ณด์žฅ๋œ๋‹ค. ์ž ๊ธˆ์ด ๊ฑธ๋ฆฐ ๋ฐ์ดํ„ฐ๋Š” ์ž ๊ธˆ์„ ์ˆ˜ํ–‰ํ•œ ํŠธ๋žœ์žญ์…˜๋งŒ ํ•ด์ œํ•  ์ˆ˜ ์žˆ๋‹ค.

 

2. COMMIT 

์ž…๋ ฅ, ์ˆ˜์ •, ์‚ญ์ œํ•œ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด ์ „ํ˜€ ๋ฌธ์ œ๊ฐ€ ์—†๋‹ค๊ณ  ํŒ๋‹จ๋์„ ๊ฒฝ์šฐ COMMIT ๋ช…๋ น์–ด๋กœ ํŠธ๋žœ์žญ์…˜์„ ์™„๋ฃŒํ•  ์ˆ˜ ์žˆ๋‹ค.

COMMIT์ด๋‚˜ ROLLBACK ์ด์ „์˜ ๋ฐ์ดํ„ฐ ์ƒํƒœ
๋ฐ์ดํ„ฐ์˜ ๋ณ€๊ฒฝ์„ ์ทจ์†Œํ•ด ์ด์ „ ์ƒํƒœ๋กœ ๋ณต๊ตฌ ๊ฐ€๋Šฅํ•˜๋‹ค.
ํ˜„์žฌ ์‚ฌ์šฉ์ž๋Š” SELECT ๋ฌธ์žฅ์œผ๋กœ ๊ฒฐ๊ณผ๋ฅผ ํ™•์ธ ๊ฐ€๋Šฅํ•˜๋‹ค.
๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๋Š” ํ˜„์žฌ ์‚ฌ์šฉ์ž๊ฐ€ ์ˆ˜ํ–‰ํ•œ ๋ช…๋ น์˜ ๊ฒฐ๊ณผ๋ฅผ ๋ณผ ์ˆ˜ ์—†๋‹ค.
๋ณ€๊ฒฝ๋œ ํ–‰์€ ์ž ๊ธˆ(LOCKING)์ด ์„ค์ •๋ผ์„œ ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๊ฐ€ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๋‹ค.
COMMIT ์ดํ›„์˜ ๋ฐ์ดํ„ฐ ์ƒํƒœ
๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋ฐ˜์˜๋œ๋‹ค.
์ด์ „ ๋ฐ์ดํ„ฐ๋Š” ์˜์›ํžˆ ์žƒ์–ด๋ฒ„๋ฆฌ๊ฒŒ ๋œ๋‹ค.
๋ชจ๋“  ์‚ฌ์šฉ์ž๋Š” ๊ฒฐ๊ณผ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.
๊ด€๋ จ๋œ ํ–‰์— ๋Œ€ํ•œ ์ž ๊ธˆ(LOCKING)์ด ํ’€๋ฆฌ๊ณ , ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๋“ค์ด ํ–‰์„ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

 

3. ROLLBACK 

โ—พ๏ธํ…Œ์ด๋ธ” ๋‚ด ์ž…๋ ฅํ•œ ๋ฐ์ดํ„ฐ๋‚˜ ์ˆ˜์ •ํ•œ ๋ฐ์ดํ„ฐ, ์‚ญ์ œํ•œ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด COMMIT ์ด์ „์—๋Š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ทจ์†Œํ•  ์ˆ˜ ์žˆ๋‹ค. 

-- [์˜ˆ์ œ] SQL Server

BEGIN TRAN

DELETE FROM PLAYER;

(480๊ฐœ ํ–‰์ด ์˜ํ–ฅ์„ ๋ฐ›์Œ)

ROLLBACK;

๋ช…๋ น์ด ์™„๋ฃŒ๋์Šต๋‹ˆ๋‹ค.
COMMIT๊ณผ ROLLBACK ์˜ ์žฅ์  
๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ ๋ณด์žฅ
์˜๊ตฌ์ ์ธ ๋ณ€๊ฒฝ์„ ํ•˜๊ธฐ ์ „์— ๋ฐ์ดํ„ฐ์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ ํ™•์ธ ๊ฐ€๋Šฅ
๋…ผ๋ฆฌ์ ์œผ๋กœ ์—ฐ๊ด€๋œ ์ž‘์—…์„ ๊ทธ๋ฃนํ•‘ํ•ด ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ

 

4. SAVEPOINT 

โ—พ๏ธํ˜„ ์‹œ์ ์—์„œ SAVEPOINT๊นŒ์ง€ ํŠธ๋žœ์žญ์…˜์˜ ์ผ๋ถ€๋งŒ ROLLBACK ํ•  ์ˆ˜ ์žˆ๋‹ค.

-- [์˜ˆ์ œ] Oracle

SAVEPOINT SVPT1;

-- ์ €์žฅ์ ๊นŒ์ง€ ๋กค๋ฐฑํ•  ๋•Œ๋Š” ROLLBACK ๋’ค์— ์ €์žฅ์  ๋ช…์„ ์ง€์ •ํ•œ๋‹ค.

ROLLBACK TO SVPT1;
-- [์˜ˆ์ œ] SQL Server

SAVE TRANSACTION SVTR1;

ROLLBACK TRANSACTION SVTR1;

rollback

 

โœจ์ œ3์ ˆ DDL


1. CREATE TABLE 

โ—พ๏ธํ…Œ์ด๋ธ”์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ๊ฐ์ฒด๋กœ, ํ–‰๊ณผ ์—ด์˜ ๊ตฌ์กฐ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•œ๋‹ค.

ํ…Œ์ด๋ธ” ์ƒ์„ฑ ์‹œ์— ์ฃผ์˜ํ•ด์•ผํ•  ๊ทœ์น™
ํ…Œ์ด๋ธ”๋ช…์€ ๊ฐ์ฒด๋ฅผ ์˜๋ฏธํ•  ์ˆ˜ ์žˆ๋Š” ์ ์ ˆํ•œ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•œ๋‹ค. ๊ฐ€๋Šฅํ•œ ๋‹จ์ˆ˜ํ˜•์„ ๊ถŒ๊ณ ํ•œ๋‹ค.
ํ…Œ์ด๋ธ” ๋ช…์€ ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”์˜ ์ด๋ฆ„๊ณผ ์ค‘๋ณต๋˜์ง€ ์•Š์•„์•ผ ํ•œ๋‹ค.
ํ•œ ํ…Œ์ด๋ธ” ๋‚ด์—์„œ๋Š” ์นผ๋Ÿผ๋ช…์ด ์ค‘๋ณต๋˜๊ฒŒ ์ง€์ •๋  ์ˆ˜ ์—†๋‹ค.
ํ…Œ์ด๋ธ” ์ด๋ฆ„์„ ์ง€์ •ํ•˜๊ณ  ๊ฐ ์นผ๋Ÿผ๋“ค์€ ๊ด„ํ˜ธ '()' ๋กœ ๋ฌถ์–ด ์ง€์ •ํ•œ๋‹ค.
๊ฐ ์นผ๋Ÿผ๋“ค์€ ์ฝค๋งˆ ',' ๋กœ ๊ตฌ๋ถ„๋˜๊ณ , ํ…Œ์ด๋ธ” ์ƒ์„ฑ๋ฌธ์˜ ๋์€ ํ•ญ์ƒ ์„ธ๋ฏธ์ฝœ๋ก  ';' ์œผ๋กœ ๋๋‚œ๋‹ค.
์นผ๋Ÿผ์— ๋Œ€ํ•ด์„œ๋Š” ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”๊นŒ์ง€ ๊ณ ๋ คํ•ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋‚ด์—์„œ๋Š” ์ผ๊ด€์„ฑ ์žˆ๊ฒŒ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค(๋ฐ์ดํ„ฐ ํ‘œ์ค€ํ™” ๊ด€์ )
์นผ๋Ÿผ ๋’ค์— ๋ฐ์ดํ„ฐ ์œ ํ˜•์€ ๊ผญ ์ง€์ •๋ผ์•ผ ํ•œ๋‹ค.
ํ…Œ์ด๋ธ”๋ช…๊ณผ ์ปฌ๋Ÿผ๋ช…์€ ๋ฐ˜๋“œ์‹œ ๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•ด์•ผ ํ•˜๊ณ , ๋ฒค๋”๋ณ„๋กœ ๊ธธ์ด์— ๋Œ€ํ•œ ํ•œ๊ณ„๊ฐ€ ์žˆ๋‹ค.
๋ฒค๋”์—์„œ ์‚ฌ์ „์— ์ •์˜ํ•œ ์˜ˆ์•ฝ์–ด(Reserved word)๋Š” ์“ธ ์ˆ˜ ์—†๋‹ค.
A-Z, a-z, 0-9, _, $, # ๋ฌธ์ž๋งŒ ํ—ˆ์šฉ๋œ๋‹ค.
ํ…Œ์ด๋ธ” ์ƒ์„ฑ์‹œ ๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„์€ ํ•˜์ง€ ์•Š์ง€๋งŒ, ๊ธฐ๋ณธ์ ์œผ๋กœ ํ…Œ์ด๋ธ”์ด๋‚˜ ์นผ๋Ÿผ๋ช…์€ ๋Œ€๋ฌธ์ž๋กœ ๋งŒ๋“ค์–ด์ง„๋‹ค.
DATETIME ๋ฐ์ดํ„ฐ ์œ ํ˜•์—๋Š” ๋ณ„๋„๋กœ ํฌ๊ธฐ๋ฅผ ์ง€์ •ํ•˜์ง€ ์•Š๋Š”๋‹ค.
๋ฌธ์ž ๋ฐ์ดํ„ฐ ์œ ํ˜•์€ ๋ฐ˜๋“œ์‹œ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ๊ธธ์ด๋ฅผ ํ‘œ์‹œํ•ด์•ผ ํ•œ๋‹ค.
์นผ๋Ÿผ๊ณผ ์นผ๋Ÿผ์˜ ๊ตฌ๋ถ„์€ ์ฝค๋งˆ๋กœ ํ•˜๋˜, ๋งˆ์ง€๋ง‰ ์นผ๋Ÿผ์€ ์ฝค๋งˆ๋ฅผ ์ฐ์ง€ ์•Š๋Š”๋‹ค.
์นผ๋Ÿผ์— ๋Œ€ํ•œ ์ œ์•ฝ์กฐ๊ฑด์ด ์žˆ์œผ๋ฉด CONSTRAINT๋ฅผ ์ด์šฉํ•ด ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค.
์ œ์•ฝ์กฐ๊ฑด์˜ ์ข…๋ฅ˜ ์„ค๋ช…
PRIMARY KEY
(๊ธฐ๋ณธํ‚ค)
ํ…Œ์ด๋ธ”์— ์ €์žฅ๋œ ํ–‰ ๋ฐ์ดํ„ฐ๋ฅผ ๊ณ ์œ ํ•˜๊ฒŒ ์‹๋ณ„ํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋ณธํ‚ค๋ฅผ ์ •์˜ํ•œ๋‹ค. ํ•˜๋‚˜์˜ ํ…Œ์ด๋ธ”์— ํ•˜๋‚˜์˜ ๊ธฐ๋ณธํ‚ค ์ œ์•ฝ๋งŒ ์ •์˜ํ•  ์ˆ˜ ์žˆ๋‹ค.
๊ธฐ๋ณธํ‚ค ์ œ์•ฝ์„ ์ •์˜ํ•˜๋ฉด DBMS๋Š” ์ž๋™์œผ๋กœ UNIQUE ์ธ๋ฑ์Šค๋ฅผ ์ƒ์„ฑํ•˜๋ฉฐ, ๊ธฐ๋ณธํ‚ค๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ์นผ๋Ÿผ์—๋Š” NULL์„ ์ž…๋ ฅํ•  ์ˆ˜ ์—†๋‹ค.
๊ฒฐ๊ตญ '๊ธฐ๋ณธํ‚ค ์ œ์•ฝ = ๊ณ ์œ ํ‚ค ์ œ์•ฝ & NOT NULL ์ œ์•ฝ' ์ด ๋œ๋‹ค.
UNIQUE
(๊ณ ์œ ํ‚ค)
ํ…Œ์ด๋ธ”์— ์ €์žฅ๋œ ํ–‰ ๋ฐ์ดํ„ฐ๋ฅผ ๊ณ ์œ ํ•˜๊ฒŒ ์‹๋ณ„ํ•˜๊ธฐ ์œ„ํ•œ ๊ณ ์œ ํ‚ค๋ฅผ ์ •์˜ํ•œ๋‹ค. ๋‹จ NULL์€ ๊ณ ์œ ํ‚ค ์ œ์•ฝ์˜ ๋Œ€์ƒ์ด ์•„๋‹ˆ๋ฏ€๋กœ, NULL ๊ฐ’์„ ๊ฐ€์ง„ ํ–‰์ด ์—ฌ๋Ÿฌ ๊ฐœ๊ฐ€ ์žˆ๋”๋ผ๋„ ๊ณ ์œ ํ‚ค ์ œ์•ฝ ์œ„๋ฐ˜์ด ๋˜์ง€ ์•Š๋Š”๋‹ค.
NOT NULL ์ด ์ œ์•ฝ์„ ์ง€์ •ํ•จ์œผ๋กœ์จ ํ•ด๋‹น ์นผ๋Ÿผ์€ ํ•„์ˆ˜๋กœ ์ž…๋ ฅํ•ด์•ผ ํ•œ๋‹ค.
CHECK ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ’์˜ ๋ฒ”์œ„ ๋“ฑ์„ ์ œํ•œํ•œ๋‹ค. CHECK ์ œ์•ฝ์œผ๋กœ๋Š” TRUE or FALSE๋กœ ํ‰๊ฐ€ํ•  ์ˆ˜ ์žˆ๋Š” ๋…ผ๋ฆฌ์‹์„ ์ง€์ •ํ•œ๋‹ค.
FOREIGN KEY
(์™ธ๋ž˜ํ‚ค)
๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ํ…Œ์ด๋ธ” ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ์ •์˜ํ•˜๊ธฐ ์œ„ํ•ด ๊ธฐ๋ณธํ‚ค๋ฅผ ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”์˜ ์™ธ๋ž˜ํ‚ค๋กœ ๋ณต์‚ฌํ•˜๋Š” ๊ฒฝ์šฐ ์™ธ๋ž˜ํ‚ค๊ฐ€ ์ƒ์„ฑ๋œ๋‹ค.
์™ธ๋ž˜ํ‚ค ์ง€์ •์‹œ ์ฐธ์กฐ ๋ฌด๊ฒฐ์„ฑ ์ œ์•ฝ ์˜ต์…˜์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋‹ค.

 

2. ALTER TABLE 

โ—พ๏ธ์นผ๋Ÿผ์„ ์ถ”๊ฐ€/์‚ญ์ œํ•˜๊ฑฐ๋‚˜ ์ œ์•ฝ์กฐ๊ฑด์„ ์ถ”๊ฐ€/์‚ญ์ œํ•˜๋Š” ์ž‘์—…

์ข…๋ฅ˜ ์˜ˆ์‹œ
ADD COLUMN
(์นผ๋Ÿผ ์ถ”๊ฐ€)
ALTER TABLE PLAYER ADD (ADDRESS VARCHAR2(80));

*์ฃผ์˜ : ์ƒˆ๋กœ ์ถ”๊ฐ€๋œ ์นผ๋Ÿผ์€ ํ…Œ์ด๋ธ”์˜ ๋งˆ์ง€๋ง‰ ์นผ๋Ÿผ์ด ๋˜๋ฉฐ ์นผ๋Ÿผ์˜ ์œ„์น˜๋ฅผ ์ง€์ •ํ•  ์ˆ˜๋Š” ์—†๋‹ค.
DROP COLUMN
(์นผ๋Ÿผ ์‚ญ์ œ)
ALTER TABLE PLAYER DROP (ADDRESS);
MODIFY COLUMN
(์นผ๋Ÿผ ์ˆ˜์ •)
Oracle
ALTER TABLE PLAYER MODIFY (ADDRESS VARCHAR2(100));

SQL Server
ALTER TABLE PLAYER MODIFY ADDRESS VARCHAR(100);
RENAME COLUMN
(์นผ๋Ÿผ๋ช… ๋ณ€๊ฒฝ)
ALTER TABLE PLAYER RENAME COLUMN ADDRESS TO HOME;
DROP CONSTRAINT
(์ œ์•ฝ์กฐ๊ฑด ์‚ญ์ œ)
ALTER TABLE PLAYER DROP CONSTRAINT PLAYER_FK;
ADD CONSTRAINT
(๐Ÿ”‘์ œ์•ฝ์กฐ๊ฑด ์ถ”๊ฐ€)
ALTER TABLE PLAYER ADD CONSTRAINT PLAYER_FK FOREIGN KEY (TEAM_ID) REFERENCES TEAM(TEAM_ID);

*์ฃผ์˜ : ์™ธ๋ž˜ ํ‚ค๐Ÿ”‘์— ์˜ํ•ด ์ฐธ์กฐ๋˜๋Š” ํ…Œ์ด๋ธ”์€ ์‚ญ์ œํ• ์ˆ˜ ์—†๋‹ค. ORA-02449 ์—๋Ÿฌ ๋ฐœ์ƒ


*์ฃผ์˜ : PLAYER ํ…Œ์ด๋ธ”์ด ์ฐธ์กฐํ•˜๋Š” TEAM ํ…Œ์ด๋ธ”์˜  ๋ฐ์ดํ„ฐ ๋˜ํ•œ ์‚ญ์ œํ•  ์ˆ˜ ์—†๋‹ค.
ORA-02292 : ๋ฌด๊ฒฐ์„ฑ ์ œ์•ฝ์กฐ๊ฑด(U_DDL.PLAYER_FK)์ด ์œ„๋ฐฐ - ์ž์‹ ๋ ˆ์ฝ”๋“œ ๋ฐœ๊ฒฌ

 

3. RENAME TABLE 

โ—พ๏ธRENAME ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ด ํ…Œ์ด๋ธ”์˜ ์ด๋ฆ„์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค.

-- [์˜ˆ์ œ] Oracle

RENAME TEAM TO TEAM_BACKUP;

-- [์˜ˆ์ œ] SQL Server

RENAME TABLE TEAM TO TEAM_BACKUP;

4. DROP TABLE 

โ—พ๏ธํ…Œ์ด๋ธ”์„ ์‚ญ์ œํ•˜๋Š” ๋ช…๋ น์–ด

-- [์˜ˆ์ œ]

DROP TABLE PLAYER;

5. TRUNCATE TABLE 

โ—พ๏ธTRUNCATE TABLE ์€ ํ…Œ์ด๋ธ” ์ž์ฒด๊ฐ€ ์‚ญ์ œ๋˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๊ณ , ํ•ด๋‹น ํ…Œ์ด๋ธ”์— ๋“ค์–ด ์žˆ๋˜ ๋ชจ๋“  ํ–‰๋“ค์ด ์ œ๊ฑฐ๋˜๊ณ  ์ €์žฅ ๊ณต๊ฐ„์„ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋„๋ก ํ•ด์ œํ•œ๋‹ค. ํ…Œ์ด๋ธ” ๊ตฌ์กฐ๋ฅผ ์™„์ „ํžˆ ์‚ญ์ œํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” DROP TABLE์„ ์‹คํ–‰ํ•˜๋ฉด ๋œ๋‹ค.

-- [์˜ˆ์ œ]

TRUNCATE TABLE TEAM;

ํ…Œ์ด๋ธ”์˜ ์ „์ฒด ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•˜๋Š” ๊ฒฝ์šฐ, 
์‹œ์Šคํ…œ ํ™œ์šฉ ์ธก๋ฉด์—์„œ๋Š” DELETE ๋ณด๋‹ค๋Š” ์‹œ์Šคํ…œ ๋ถ€ํ•˜๊ฐ€ ์ ์€ TRUNCATE TABLE์„ ๊ถŒ๊ณ ํ•œ๋‹ค.
*TRUNCATE TABLE์˜ ๊ฒฝ์šฐ ์ •์ƒ์ ์ธ ๋ณต๊ตฌ๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ ์ฃผ์˜ํ•ด์•ผ ํ•œ๋‹ค.

 

โœจ์ œ4์ ˆ DCL


1. DCL ๊ฐœ์š” 

โ—พ๏ธ์œ ์ € ์ƒ์„ฑ ๋ฐ ๊ถŒํ•œ์„ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋Š” DCL(Data Control Language) ๋ช…๋ น์–ด

 

2. ์œ ์ €์™€ ๊ถŒํ•œ 

โ—พ๏ธ๋ฐ์ดํ„ฐ ๊ณต์œ ๋ฅผ ์œ„ํ•ด ์ƒˆ๋กœ์šด ์œ ์ €๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ํ…Œ์ด๋ธ” ๋ฐ ์˜ค๋ธŒ์ ํŠธ ์— ๋Œ€ํ•œ ์ ‘๊ทผ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•œ๋‹ค.

Oracle ์—์„œ ์ œ๊ณตํ•˜๋Š” ์œ ์ €๋“ค ์—ญํ• 
SCOTT Oracle ํ…Œ์ŠคํŠธ์šฉ ์ƒ˜ํ”Œ ๊ณ„์ •
Default ํŒจ์Šค์›Œ๋“œ : TIGER
SYS ๋ฐฑ์—… ๋ฐ ๋ณต๊ตฌ ๋“ฑ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ƒ์˜ ๋ชจ๋“  ๊ด€๋ฆฌ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š”
์ตœ์ƒ์œ„ ๊ด€๋ฆฌ์ž ๊ณ„์ •
SYSTEM ๋ฐฑ์—…, ๋ณต๊ตฌ ๋“ฑ ์ผ๋ถ€ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ์„ ์ œ์™ธํ•œ ๋ชจ๋“  ์‹œ์Šคํ…œ ๊ถŒํ•œ์„ ๋ถ€์—ฌ๋ฐ›์€ DBA ๊ณ„์ •
(Oracle ์„ค์น˜ ์‹œ์— ํŒจ์Šค์›Œ๋“œ ์„ค์ •)

์˜ค๋ธŒ์ ํŠธ ๊ถŒํ•œ๊ณผ ์˜ค๋ธŒ์ ํŠธ์™€์˜ ๊ด€๊ณ„ (Oracle ์‚ฌ๋ก€)

๊ฐ์ฒด ๊ถŒํ•œ ํ…Œ์ด๋ธ” VIEWS SEQUENCE PROCEDURE
ALTER O   O  
DELETE O O    
EXECUTE       O
INDEX O      
INSERT O O    
REFERENCES O      
SELECT O O O  
UPDATE O O    

์˜ค๋ธŒ์ ํŠธ ๊ถŒํ•œ๊ณผ ์˜ค๋ธŒ์ ํŠธ์™€์˜ ๊ด€๊ณ„ (SQL Server ์‚ฌ๋ก€)

๊ฐ์ฒด ๊ถŒํ•œ ํ…Œ์ด๋ธ” VIEWS FUNCTION PROCEDURE
ALTER O   O  
DELETE O O O  
EXECUTE       O
INDEX O      
INSERT O O    
REFERENCES O      
SELECT O O O  
UPDATE O O    

 

3. Role์„ ์ด์šฉํ•œ ๊ถŒํ•œ ๋ถ€์—ฌ

โ—พ๏ธ์œ ์ €๋“ค๊ณผ ๊ถŒํ•œ๋“ค ์‚ฌ์ด์—์„œ ์ค‘๊ฐœ ์—ญํ• ์„ ํ•˜๋Š” ROLE

 

๊ตฌ๋ถ„ ์˜ˆ์‹œ
ROLE ์ƒ์„ฑ CREATE ROLE [๋กค์ด๋ฆ„];
๊ถŒํ•œ ๋ถ€์—ฌ GRANT CREATE SESSION , CREATE TABLE TO [๋กค์ด๋ฆ„];
๊ถŒํ•œ ํšŒ์ˆ˜ REVOKE CREATE SESSION , CREATE TABLE FROM [๋กค์ด๋ฆ„];

 

CONNECT ROLE๊ณผ RESOURCE ROLE์— ํฌํ•จ๋œ ๊ถŒํ•œ ๋ชฉ๋ก (Oracle ์‚ฌ๋ก€)

CONNECT RESOURCE
CREATE SESSION
CREATE CLUSTER
CREATE INDEXTYPE
CREATE OPERATOR
CREATE PROCEDURE
CREATE SEQUENCE
CREATE TABLE
CREATE TRIGGER
CREATE TYPE

 SQL Server   ์—์„œ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์ œ๊ณต๋˜๋Š” ROLE์— ๋ฉค๋ฒ„๋กœ ์ฐธ์—ฌํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค.

ํŠน์ • ๋กœ๊ทธ์ธ์ด ๋ฉค๋ฒ„๋กœ ์ฐธ์—ฌํ•  ์ˆ˜ ์žˆ๋Š”  ์„œ๋ฒ„ ์ˆ˜์ค€ ์—ญํ•  (SQL SERVER ์‚ฌ๋ก€) ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

์—ญํ• ๋ช… ์„ค๋ช…
public ๋ชจ๋“  SQL Server ๋กœ๊ทธ์ธ์€ PUBLIC ์„œ๋ฒ„ ์—ญํ• ์— ์†ํ•œ๋‹ค. 
bulkadmin BULK INSERT ๋ฌธ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.
dbcreator ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ƒ์„ฑ, ๋ณ€๊ฒฝ, ์‚ญ์ œ, ๋ณต์›ํ•  ์ˆ˜ ์žˆ๋‹ค.
diskadmin ๋””์Šคํฌ ํŒŒ์ผ์„ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค.
processadmin SQL Server์˜ ์ธ์Šคํ„ด์Šค์—์„œ ์‹คํ–‰์ค‘์ธ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ข…๋ฃŒํ•  ์ˆ˜ ์žˆ๋‹ค.
securityadmin ๋กœ๊ทธ์ธ ๋ฐ ํ•ด๋‹น ์†์„ฑ์„ ๊ด€๋ฆฌํ•œ๋‹ค. ์„œ๋ฒ„ ๋ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ˆ˜์ค€์˜ ์‚ฌ์šฉ ๊ถŒํ•œ์„ ๋ถ€์—ฌ(GRANT), ๊ฑฐ๋ถ€(DENY), ์ทจ์†Œ(REVOKE)ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋˜ํ•œ ๋กœ๊ทธ์ธ ์•”ํ˜ธ๋ฅผ ๋‹ค์‹œ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.
serveradmin ์„œ๋ฒ„ ์ฐจ์›์˜ ๊ตฌ์„ฑ ์˜ต์…˜์„ ๋ณ€๊ฒฝํ•˜๊ณ  ์„œ๋ฒ„๋ฅผ ์ข…๋ฃŒํ•  ์ˆ˜ ์žˆ๋‹ค.
setupadmin ์—ฐ๊ฒฐ๋œ ์„œ๋ฒ„๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ๋‹ค.
sysadmin ์„œ๋ฒ„์—์„œ ๋ชจ๋“  ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ Windows BUILTIN \ Administrators ๊ทธ๋ฃน์˜ ๋ฉค๋ฒ„์ธ ๋กœ์ปฌ ๊ด€๋ฆฌ์ž ๊ทธ๋ฃน์€ sysadmin ๊ณ ์ • ์„œ๋ฒ„ ์—ญํ• ์˜ ๋ฉค๋ฒ„์ด๋‹ค.

 ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ˆ˜์ค€ ์—ญํ• ๋ช…(SQL Server ์‚ฌ๋ก€) 

์—ญํ• ๋ช… ์„ค๋ช…
db_accessadmin Windows ๋กœ๊ทธ์ธ, WIndows ๊ทธ๋ฃน ๋ฐ SQL Server ๋กœ๊ทธ์ธ์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ๋‹ค
db_backupoperator ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋ฐฑ์—…ํ•  ์ˆ˜ ์žˆ๋‹ค.
db_datareader ๋ชจ๋“  ์‚ฌ์šฉ์ž ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์„ ์ˆ˜ ์žˆ๋‹ค.
db_datawriter ๋ชจ๋“  ์‚ฌ์šฉ์ž ํ…Œ์ด๋ธ”์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€, ์‚ญ์ œ, ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค.
db_ddladmin ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ชจ๋“  DDL ๋ช…๋ น์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.
db_denydatareader ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋‚ด์— ์žˆ๋Š” ์‚ฌ์šฉ์ž ํ…Œ์ด๋ธ”์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์„ ์ˆ˜ ์—†๋‹ค.
db_denydatawriter ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋‚ด์˜ ๋ชจ๋“  ์‚ฌ์šฉ์ž ํ…Œ์ด๋ธ”์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€, ์‚ญ์ œ, ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๋‹ค.
db_owner ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋‚ด์— ์žˆ๋Š” ๋ชจ๋“  ๊ตฌ์„ฑ ๋ฐ ์œ ์ง€๊ด€๋ฆฌ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๊ณ , ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ญ์ œํ•  ์ˆ˜๋„ ์žˆ๋‹ค.
db_securityadmin ์—ญํ•  ๋ฉค๋ฒ„ ์ž๊ฒฉ์„ ์ˆ˜์ •ํ•˜๊ณ  ์‚ฌ์šฉ ๊ถŒํ•œ ๊ด€๋ฆฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋‹ค.
์ด ์—ญํ• ์— ๋ณด์•ˆ ์ฃผ์ฒด๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ์›ํ•˜์ง€ ์•Š๋Š” ๊ถŒํ•œ ์ƒ์Šน์ด ์„ค์ •๋  ์ˆ˜ ์žˆ๋‹ค.

 

โœจ์žฅ ์š”์•ฝ

๋ช…๋ น์–ด ์—ญํ•  ์˜ˆ
DML
๋ฐ์ดํ„ฐ(ํ–‰)๋ฅผ ๊ฒ€์ƒ‰, ์ˆ˜์ •, ์‚ฝ์ž…, ์‚ญ์ œ INSERT INTO
UPDATE
DELETE
MERGE (INSERT + UPDATE)
TCL ํŠธ๋žœ์žญ์…˜์„ ๊ด€๋ฆฌ, ์ œ์–ดํ•˜๋Š” ๋ช…๋ น์–ด๋ฅผ ์˜๋ฏธ COMMIT
ROLLBACK
SAVEPOINT
DDL ๋ฐ์ดํ„ฐ ํ…Œ์ด๋ธ”(์…‹)์„ ์ƒ์„ฑ, ์ˆ˜์ •, ์‚ญ์ œ CREATE TABLE
ALTER TABLE
RENAME TABLE / SP_RENAME 'ํ…Œ์ด๋ธ”๋ช…','์ƒˆ๋กœ์šดํ…Œ์ด๋ธ”๋ช…'
DROP TABLE
*TRUNCATE TABLE
DCL ๋ฐ์ดํ„ฐ ์‚ฌ์šฉ์ž ๋˜๋Š” ๊ฐ์ฒด์˜ ์‚ฌ์šฉ๊ถŒํ•œ์„ ๊ด€๋ฆฌํ•˜๋Š” ๋ช…๋ น์–ด GRANT ๊ถŒํ•œ ์œ„์ž„
REVOKE ๊ถŒํ•œ ํšŒ์ˆ˜

 

300x250

์ฝ”๋“œ