๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํ ์ ๊ทผ ๊ถํ์ ๊ฐ์ง ๋ชปํ ์ฌ์ฉ์๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ์์ ํ๊ฒ ๋ณดํธํ ์๋ฌด๊ฐ ์์
DBMS์์ ์ ๊ณตํ๋ ๋ณด์
- ํ๊ฐ๋ฐ์ง ์์ ์ฌ์ฉ์, ์ฆ ๊ถํ์ด ์๋ ์ฌ์ฉ์๋ก๋ถํฐ ๋ฐ์ดํฐ์ ์ ๊ทผ์ ์ฌ์ ์ ์ฐจ๋จ
โ
๋ฐ์ดํฐ๋ฒ ์ด์ค์์์ ์ฌ์ฉ ๊ถํ
โ ์ฌ์ฉ์๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ด์ ํน์ ๊ฐ์ฒด์ ๋ํด ํน์ ์ฐ์ฐ์ ์คํํ ์ ์๋ ๊ถ๋ฆฌ
- ํน์ ๊ฐ์ฒด : ํ ์ด๋ธ, ํ๋, ๋ทฐ, ์ ์ฅ ํ๋ก์์ ๋ฑ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ตฌ์ฑ ์์
โ
๊ถํ ์ ์ด๊ฐ ๊ฐ๋ฅํ ์ฐ์ฐ์ ์ข ๋ฅ
- ๋ฐ์ดํฐ ์ ๊ทผ ๊ด๋ จ ์ฐ์ฐ (DML)
์) SQL์ select, insert, delete, update ๋ฑ
- ์คํค๋ง ๊ด๋ จ ์ฐ์ฐ (DDL)
์) create table, alter table, drop table, create index ๋ฑ
โ
๊ถํ์ ๋ฐ๋ฅธ ์ฌ์ฉ์ ๋ถ๋ฅ
โฝ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ์(DBA)
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ด์ ๋ชจ๋ ๊ฐ์ฒด์ ๋ํด ๋ชจ๋ ๊ถํ์ ๊ฐ์ง
- ๊ฐ์ฒด์ ๋ํ ์ฐ์ฐ, ๊ฐ์ฒด์ ์ญ์ ์ ๋ณ๊ฒฝ ํฌํจ
- ์ฌ์ฉ์์๊ฒ ํด๋น ๊ฐ์ฒด์ ๋ํ ๊ถํ์ ๋ถ์ฌํ๊ฑฐ๋ ํ์ ๊ฐ๋ฅ
โ
โฝ ๊ฐ์ฒด ์์ ์(owner)
- ๊ฐ์ฒด๋ฅผ ์์ฑํ ์ฌ์ฉ์
- ์์ฑํ ๊ฐ์ฒด์ ๋ํด ๋ชจ๋ ๊ถํ์ ์์
- ํด๋น ๊ฐ์ฒด์ ๋ํ ๊ถํ์ ๋ถ์ฌ๋ ํ์๋ ํฌํจ
โ
โฝ ๊ธฐํ ์ฌ์ฉ์
- ๊ธฐ๋ณธ์ ์ผ๋ก ๋ค๋ฅธ ์ฌ์ฉ์์ ๊ฐ์ฒด์ ๋ํ ์ผ์ฒด์ ์ฌ์ฉ๊ถํ์ด ์์
- ๋ค๋ง ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ์๋ ๊ฐ์ฒด ์์ ์๋ก๋ถํฐ ์ผ๋ถ ๋๋ ๋ชจ๋ ๊ถํ์ ๋ณ๋๋ก ๋ถ์ฌ๋ฐ์ ์ ์์
โ
๊ถํ ๋ถ์ฌ์ ์
SQL์์์ ๊ถํ ์ ์ด - GRANT
โ ๊ถํ์ ๋ถ์ฌํ๋ ๋ช ๋ น
ํ์ : grant <๊ถํ ๋ฆฌ์คํธ> on <๊ฐ์ฒด๋ช > to <์ฌ์ฉ์ ๋ฆฌ์คํธ>
<๊ถํ ๋ฆฌ์คํธ> : select, insert, delete, update, references ์ค ํ ๊ฐ ์ด์
<์ฌ์ฉ์ ๋ฆฌ์คํธ> : ๊ถํ์ ๋ถ์ฌ๋ฐ๋ ์ฌ์ฉ์๋ค์ ๋ฆฌ์คํธ
โฝ <์ฌ์ฉ์ ๋ฆฌ์คํธ>์๊ฒ <๊ฐ์ฒด๋ช >์ ๋ํ <๊ถํ ๋ฆฌ์คํธ>๋ฅผ ์คํํ ๊ถ๋ฆฌ๋ฅผ ๋ถ์ฌํ๋ค๋ ์๋ฏธ
โ
์) ์ฌ์ฉ์ kim์๊ฒ student ํ ์ด๋ธ์ ๋ํด select ์ฐ์ฐ์ ์ํํ ์ ์๋ ๊ถํ์ ๋ถ์ฌ
grant select on student to kim
์) kim์๊ฒ student ํ ์ด๋ธ์ ๋ํ select์ delete ๊ถํ์ ๋์์ ๋ถ์ฌ
grant select, delete on student to kim
references ๊ถํ
- ํ ์ด๋ธ์ ์ธ๋ํค๋ก ์ฐธ์กฐํ ์ ์๋ ๊ถํ
โ ๊ถํ์ด ์์ผ๋ฉด kim์ด ์์ฑํ student ํ ์ด๋ธ์ department ํ ์ด๋ธ์ ์ธ๋ํค๋ก ์ฐธ์กฐํ ์ ์์
โ
references ๊ถํ ๋ถ์ฌ ์
grant references (dept_id) on department to kim
- dept_id๋ ํ ์ด๋ธ department์ ๊ธฐ๋ณธํค
- kim์ department ํ ์ด๋ธ์ ์ฐธ์กฐํ๋ ์ธ๋ํค๋ฅผ ํฌํจํ๋ ํ ์ด๋ธ์ ์์ฑ์ด ๊ฐ๋ฅ
โ
๋ชจ๋ ์ฌ์ฉ์์๊ฒ ๊ถํ์ ๋ถ์ฌ
- <์ฌ์ฉ์ ๋ฆฌ์คํธ>์ public ์ฌ์ฉ
โ
์) student์ ๋ํด ๋ชจ๋ ์ฌ์ฉ์๋ค์๊ฒ select ๊ถํ์ ๋ถ์ฌ
grant select on student to public
๋ชจ๋ ์ข ๋ฅ์ ๊ถํ์ ํ๋์ ๋ช ๋ น์ผ๋ก ๋ถ์ฌํ๋ ๋ฐฉ๋ฒ
- all privileges๋ผ๋ ํค์๋๋ฅผ ์ฌ์ฉ
โ
์) student ํ ์ด๋ธ์ ๋ํ ๋ชจ๋ ๊ถํ์ lee์๊ฒ ๋ถ์ฌ
grant all privileges on student to lee
WITH GRANT OPTION
โ ๋ถ์ฌ๋ฐ์ ๊ถํ์ ๋ค๋ฅธ ์ฌ์ฉ์์๊ฒ ์ ํํ ์ ์๋ ํน๋ณํ ์ต์
โ
์) student ํ ์ด๋ธ์ ๋ํ select ๊ถํ์ kim์๊ฒ ๋ถ์ฌํจ๊ณผ ๋์์ ์ด ๊ถํ์ ๋ค๋ฅธ ์ฌ์ฉ์์๊ฒ ๋ค์ ์ ํํ ์ ์๋ ์๊ฒฉ๊น์ง ๋ถ์ฌ
grant select on student to kim with grant option
REVOKE
โ ๋ค๋ฅธ ์ฌ์ฉ์์๊ฒ ๋ถ์ฌํ ๊ถํ์ ํ์ํ๊ธฐ ์ํ ๋ช ๋ น
ํ์ : revoke <๊ถํ๋ฆฌ์คํธ> on <๊ฐ์ฒด๋ช > from <์ฌ์ฉ์ ๋ฆฌ์คํธ>
โฝ <์ฌ์ฉ์ ๋ฆฌ์คํธ>์ ์ํ ์ฌ์ฉ์๋ค๋ก๋ถํฐ <๊ฐ์ฒด๋ช >์ ๋ํ <๊ถํ๋ฆฌ์คํธ> ์ฐ์ฐ๋ค์ ์คํ ๊ถํ์ ํ์
โ
์) kim์๊ฒ ๋ถ์ฌ๋์๋ student ํ ์ด๋ธ์ ๋ํ select ๊ถํ์ ํ์
revoke select on student from kim
ROLE
- ํน์ ํ ์ด๋ธ์ ๋ํ ๊ถํ์ ๋ถ์ฌํด์ผ ํ ์ฌ์ฉ์๊ฐ ๋ง๋ค๋ฉด, ๋ฐ๋ณต์ ์ผ๋ก grant๋ฌธ์ด๋ revoke์ ์คํํด์ผํ๋ ๋ฌธ์ ๋ฐ์, ๋จ์ ๋ฐ๋ณต ์์ ์ ์ค์ด๊ธฐ ์ํด ๊ถํ๋ณ๋ก ์ฌ์ฉ์ ๊ทธ๋ฃน์ ๋ง๋ค์ด ๊ทธ๋ฃน์ ๊ถํ์ ๋ถ์ฌํ๋ ๋ฐฉ๋ฒ์ด ํ์
โ ๊ถํ์ ๋ฐ๋ฅธ ์ฌ์ฉ์ ๊ทธ๋ฃน
โ ๋กค์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ์๋ง์ด ์์ฑ ๊ฐ๋ฅ
ํ์ : create role <๋กค์ด๋ฆ>
โ
์) ์ฌ์๊ณผ ์์์ ๋ํ ๋กค์ ์์ฑ
create role employee
create role manager
๋กค์ ์ฌ์ฉ์ ๋ฐฐ์
ํ์ : grant <๋กค๋ฆฌ์คํธ> to <์ฌ์ฉ์ ๋ฆฌ์คํธ>
โ
์) ์ฌ์ฉ์ lee์ kim์ ์ฌ์, chang๊ณผ choi๋ ์์์ผ ๊ฒฝ์ฐ
grant employee to lee, kim
grant manager to chang, choi
๋กค์ ๊ถํ์ ๋ถ์ฌ
grant๋ฌธ๊ณผ ํ์์ ๋์ผ
โ
์) employee์๊ฒ๋ student ํ ์ด๋ธ์ ๋ํด select ์ฐ์ฐ ํ์ฉํ๊ณ , manager์๊ฒ๋ select์ insert ์ฐ์ฐ ํ์ฉ
grant select on student to employee
grant select, insert on student to manager
๋กค์ ๋ถ์ฌ๋ ๊ถํ์ ํ์
revoke๋ฌธ๊ณผ ํ์ ๋์ผ
โ
์) manager์๊ฒ ๋ถ์ฌ๋ insert ๊ถํ์ ํ์
revoke insert on student from manager
๋ฐฐ์ ๋ ๋กค์์ ์ฌ์ฉ์๋ฅผ ๋ฐฐ์
ํ์ : revoke <๋กค๋ฆฌ์คํธ> from <์ฌ์ฉ์ ๋ฆฌ์คํธ>
โ
์) ์ฌ์ฉ์ choi๋ฅผ manager๋ก๋ถํฐ ๋ฐฐ์
revoke manager from choi
๋กค ์ญ์
ํ์ : drop role <๋กค ์ด๋ฆ>
โ
๋ทฐ๋ฅผ ์ด์ฉํ ๊ถํ ์ ์ด
- ํน์ ํ ์ด๋ธ์์ ์ผ๋ถ ํ๋ ํน์ ์ผ๋ถ ๋ ์ฝ๋๋ค์ ๋ํด์๋ง ์ ๊ทผ์ ํ์ฉํ ๊ฒฝ์ฐ ์ด ๋ถ๋ถ๋ค์ ๋ทฐ๋ก ์ ์
- ์ ์๋ ๋ทฐ์ ๋ํด ์ ๊ทผ ๊ถํ์ ๋ถ์ฌํ๊ณ ์ค์ ํ ์ด๋ธ์ ๋ํ ์ ๊ทผ์ ์ฐจ๋จ
- ์ฌ์ฉ์์๊ฒ ๊ฐ์ถ๊ณ ์ถ์ ๋ถ๋ถ์ ๋ํ ๊ฐ๋ ฅํ ๋ณด์ ์๋จ ์ ๊ณต
- ํ๋๋ฟ๋ง ์๋๋ผ ์ผ๋ถ ๋ ์ฝ๋๋ค์ ๋ํด์๋ ์ ๊ทผ์ ์ด๊ฐ ๊ฐ๋ฅ
โ