λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
개인 곡뢀/DB

λ°μ΄ν„°λ² μ΄μŠ€ λ³΄μ•ˆκ³Ό PRIVILEGES

by syLim___ 2024. 11. 24.
728x90

 

πŸ“Œ λ°μ΄ν„°λ² μ΄μŠ€ λ³΄μ•ˆ

λ°μ΄ν„°λ² μ΄μŠ€λŠ” νšŒμ‚¬μ˜ 사업적인 λΆ€λΆ„κ³Ό κ΄€λ ¨λœ 정보가 많이 λ“€μ–΄μžˆλŠ” μ€‘μš”ν•œ μžμ‚°μ΄λ―€λ‘œ λ³΄μ•ˆμ΄ 맀우 μ€‘μš”ν•˜λ‹€.

λ°μ΄ν„°λ² μ΄μŠ€ λ³΄μ•ˆμ„ μ§€ν‚€κΈ° μœ„ν•΄μ„œλŠ” μ•„λž˜ 3κ°€μ§€λ₯Ό κ³ λ €ν•΄μ•Ό ν•œλ‹€.

 

1️⃣ λ³΄μ•ˆ(security)

- κΆŒν•œμ΄ μ—†λŠ” μ‚¬μš©μžμ—κ²ŒλŠ” λ°μ΄ν„°λ² μ΄μŠ€μ˜ 데이터가 λ…ΈμΆœλ˜μ–΄μ„œλŠ” μ•ˆ λœλ‹€.

2️⃣ 무결성(integrity)

- λ°μ΄ν„°λ² μ΄μŠ€μ˜ 데이터 μˆ˜μ •μ€ μˆ˜μ • κΆŒν•œμ΄ μžˆλŠ” μ‚¬μš©μžλ§Œ ν•  수 있게 ν•΄μ•Ό ν•œλ‹€.

3️⃣ κ°€μš©μ„±(availability)

- κΆŒν•œμ΄ μžˆλŠ” μ‚¬μš©μžμ˜ 데이터에 λŒ€ν•œ 접근이 κ±°λΆ€λ˜μ–΄μ„œλŠ” μ•ˆ λœλ‹€.

 

βœ… User 개체

- DBMSλŠ” λ°μ΄ν„°λ² μ΄μŠ€μ˜ μ‚¬μš©μžλ₯Ό μƒμ„±ν•˜κ³  κ΄€λ¦¬ν•œλ‹€.

- DBMSλŠ” μ„€μΉ˜λ  λ•Œ μ‹œμŠ€ν…œμ— λŒ€ν•œ λͺ¨λ“  κΆŒν•œμ„ κ°–λŠ” κ΄€λ¦¬μž 계정을 μƒμ„±ν•œλ‹€.

 

- DBMS μ‚¬μš©μžλŠ” μ•„λž˜ λͺ…λ Ήμ–΄λ‘œ 생성할 수 μžˆλ‹€.

CREATE USER {μœ μ €μ•„μ΄λ””} IDENTIFIED BY {νŒ¨μŠ€μ›Œλ“œ}

 

βœ… User별 μ ‘κ·Ό μ œμ–΄

 

SQL ν‘œμ€€μ—μ„œλŠ” GRANT λͺ…령어와 REVOKE λͺ…λ Ήμ–΄λ₯Ό 톡해 μ‚¬μš©μžλ³„λ‘œ μ ‘κ·Όμ œμ–΄λ₯Ό μ„€μ •ν•  수 μžˆλ„λ‘ μ§€μ›ν•œλ‹€.

 


 

GRANT λͺ…λ Ήμ–΄λŠ”, μ‚¬μš©μžμ—κ²Œ ν…Œμ΄λΈ”μ΄λ‚˜ 뷰에 λŒ€ν•œ νŠΉκΆŒμ„ λΆ€μ—¬ν•˜λŠ” λͺ…령어이닀.

GRANT {PRIVILEGES} ON {ν…Œμ΄λΈ”orλ·° 이름} TO {User이름} [WITH GRANT OPTIONS]

 

WITH GRANT OPTIONSλ₯Ό 적어주면, ν•΄λ‹Ή μœ μ €λŠ” λ‹€λ₯Έ μœ μ €μ—κ²Œ μžμ‹ κ³Ό λ™μΌν•œ νŠΉκΆŒμ„ 뢀여해쀄 수 있게 λœλ‹€.

 


 

REVOKE λͺ…λ Ήμ–΄λŠ”, μ‚¬μš©μžμ—κ²Œ λΆ€μ—¬λœ ν…Œμ΄λΈ”μ΄λ‚˜ 뷰에 λŒ€ν•œ νŠΉκΆŒμ„ μ·¨μ†Œν•˜λŠ” λͺ…령어이닀.

REVOKE {PRIVILEGES} ON {ν…Œμ΄λΈ”orλ·° 이름} FROM {User이름} [CASCADE]

 

CASCADE μ˜΅μ…˜μ„ 적어주면, ν•΄λ‹Ή μœ μ €κ°€ λ‹€λ₯Έ μœ μ €λ“€μ—κ²Œ λΆ€μ—¬ν–ˆλ˜ κΆŒν•œλ„ λͺ¨λ‘ μ—°μ‡„μ μœΌλ‘œ μ·¨μ†Œλœλ‹€.

 

 

 

πŸ“Œ GRANT λͺ…령어와 REVOKE λͺ…λ Ήμ–΄μ—μ„œ {PRIVILEGES}에 λͺ…μ„Έν•  수 μžˆλŠ” 특ꢌ의 μ’…λ₯˜λŠ” λ‹€μŒκ³Ό κ°™λ‹€.

 

πŸ₯ SELECT

- μ§€μ •ν•œ ν…Œμ΄λΈ”or뷰의 λͺ¨λ“  ν•„λ“œμ— λŒ€ν•΄ readν•  수 μžˆλ‹€.

- κΆŒν•œ λΆ€μ—¬ 이후 ALTER TABLE λͺ…λ Ήμ–΄λ‘œ 컬럼이 μΆ”κ°€λ˜λ©΄, μΆ”κ°€λœ μ»¬λŸΌλ“€λ„ readν•  수 μžˆλ‹€.

 

πŸ₯ INSERT [ν•„λ“œλͺ…]

- μ§€μ •ν•œ ν…Œμ΄λΈ”μ˜ ν•„λ“œμ— tuple을 μ‚½μž…ν•  수 μžˆλ‹€.

- ν•„λ“œλͺ…을 λͺ…μ„Έν•˜μ§€ μ•ŠμœΌλ©΄ λͺ¨λ“  ν•„λ“œμ— λŒ€ν•΄ tuple을 μ‚½μž…ν•  수 μžˆλ‹€.

    - 이 경우, κΆŒν•œ λΆ€μ—¬ 이후 ALTER TABLE λͺ…λ Ήμ–΄λ‘œ 컬럼이 μΆ”κ°€λ˜λ©΄, μΆ”κ°€λœ μ»¬λŸΌμ— λŒ€ν•΄μ„œλ„ tuple을 μ‚½μž…ν•  수 μžˆλ‹€.

 

πŸ₯ UPDATE [ν•„λ“œλͺ…]

- μ§€μ •ν•œ ν…Œμ΄λΈ”μ˜ ν•„λ“œ 값을 updateν•  수 μžˆλ‹€.

- ν•„λ“œλͺ…을 λͺ…μ„Έν•˜μ§€ μ•ŠμœΌλ©΄ λͺ¨λ“  ν•„λ“œ 값을 updateν•  수 μžˆλ‹€.

    - 이 경우, κΆŒν•œ λΆ€μ—¬ 이후 ALTER TABLE λͺ…λ Ήμ–΄λ‘œ 컬럼이 μΆ”κ°€λ˜λ©΄, μΆ”κ°€λœ μ»¬λŸΌμ— λŒ€ν•΄μ„œλ„ ν•„λ“œ 값을 updateν•  수 μžˆλ‹€.

 

πŸ₯ DELETE

- μ§€μ •ν•œ ν…Œμ΄λΈ”λ‘œλΆ€ν„° tuple을 μ‚­μ œν•  수 μžˆλ‹€.

 

πŸ₯ REFERENCES[(ν•„λ“œλͺ…)]

- μ§€μ •ν•œ ν…Œμ΄λΈ”μ˜ ν•„λ“œλ₯Ό μ™Έλž˜ν‚€λ‘œ μ°Έμ‘°ν•˜λŠ” λ‹€λ₯Έ ν…Œμ΄λΈ”μ„ 생성할 수 μžˆλ‹€.

- ν•„λ“œλͺ…을 μƒλž΅ν•˜λ©΄, λ‚˜μ€‘μ— μΆ”κ°€λ˜λŠ” ν•„λ“œλ“€μ„ ν¬ν•¨ν•΄μ„œ λͺ¨λ“  ν•„λ“œμ— λŒ€ν•΄ ν•΄λ‹Ή κΆŒν•œμ„ λΆ€μ—¬ν•œλ‹€.

728x90