ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄/DataBase

[SQL] κΆŒν•œ 관리

NaNaRinπŸ™ƒ 2021. 3. 17. 18:20

1. μ‹œμŠ€ν…œ κΆŒν•œ system privilege

- μ‚¬μš©μž 생성과 정보 μˆ˜μ • 및 μ‚­μ œ, λ°μ΄ν„°λ² μ΄μŠ€ μ ‘κ·Ό, 였라클 λ°μ΄ν„°λ² μ΄μŠ€μ˜ μ—¬λŸ¬ μžμ›κ³Ό 객체 생성 및 관리 λ“±μ˜ κΆŒν•œμ„ 포함

- λ°μ΄ν„°λ² μ΄μŠ€ 관리 κΆŒν•œμ΄ μžˆλŠ” μ‚¬μš©μžκ°€ λΆ€μ—¬ν•  수 μžˆλŠ” κΆŒν•œ

 

μ‹œμŠ€ν…œ κΆŒν•œ λΆ„λ₯˜ μ‹œμŠ€ν…œ κΆŒν•œ μ„€λͺ…
USER
μ‚¬μš©μž
  CREATE USER   μ‚¬μš©μž 생성 κΆŒν•œ
  ALTER USER   μƒμ„±λœ μ‚¬μš©μžμ˜ 정보 μˆ˜μ • κΆŒν•œ
  DROP USER   μƒμ„±λœ μ‚¬μš©μžμ˜ μ‚­μ œ κΆŒν•œ
SESSION
접속
  CREATE SESSION   λ°μ΄ν„°λ² μ΄μŠ€ 접속 κΆŒν•œ
  ALTER SESSION   λ°μ΄ν„°λ² μ΄μŠ€ 접속 μƒνƒœμ—μ„œ ν™˜κ²½ κ°’ λ³€κ²½ κΆŒν•œ
TABLE
ν…Œμ΄λΈ”
  CREATE TABLE   μžμ‹ μ˜ ν…Œμ΄λΈ” 생성 κΆŒν•œ
  CREATE ANY TABLE   μž„μ˜μ˜ μŠ€ν‚€λ§ˆ μ†Œμœ  ν…Œμ΄λΈ” 생성 κΆŒν•œ
  ALTER ANY TABLE   μž„μ˜μ˜ μŠ€ν‚€λ§ˆ μ†Œμœ  ν…Œμ΄λΈ” μˆ˜μ • κΆŒν•œ
  DROP ANY TABLE   μž„μ˜μ˜ μŠ€ν‚€λ§ˆ μ†Œμœ  ν…Œμ΄λΈ” μ‚­μ œ κΆŒν•œ
  INSERT ANY TABLE   μž„μ˜μ˜ μŠ€ν‚€λ§ˆ μ†Œμœ  ν…Œμ΄λΈ” 데이터 μ‚½μž… κΆŒν•œ
  UPDATE ANY TABLE   μž„μ˜μ˜ μŠ€ν‚€λ§ˆ μ†Œμœ  ν…Œμ΄λΈ” 데이터 μˆ˜μ • κΆŒν•œ
  DELETE ANY TABLE   μž„μ˜μ˜ μŠ€ν‚€λ§ˆ μ†Œμœ  ν…Œμ΄λΈ” 데이터 μ‚­μ œ κΆŒν•œ
  SELECT ANY TABLE   μž„μ˜μ˜ μŠ€ν‚€λ§ˆ μ†Œμœ  ν…Œμ΄λΈ” 데이터 쑰회 κΆŒν•œ
INDEX
인덱슀
  CREATE ANY INDEX   μž„μ˜μ˜ μŠ€ν‚€λ§ˆ μ†Œμœ  ν…Œμ΄λΈ”μ˜ 인덱슀 생성 κΆŒν•œ
  ALTER ANY INDEX   μž„μ˜μ˜ μŠ€ν‚€λ§ˆ μ†Œμœ  ν…Œμ΄λΈ”μ˜ 인덱슀 μˆ˜μ • κΆŒν•œ
  DROP ANY INDEX   μž„μ˜μ˜ μŠ€ν‚€λ§ˆ μ†Œμœ  ν…Œμ΄λΈ”μ˜ 인덱슀 μ‚­μ œ κΆŒν•œ
…… …… ……

(ANY ν‚€μ›Œλ“œκ°€ λ“€μ–΄ μžˆλŠ” κΆŒν•œμ€ μ†Œμœ μžμ— 상관없이 μ‚¬μš© κ°€λŠ₯ν•œ κΆŒν•œμ„ 의미)

 

1-1. μ‹œμŠ€ν…œ κΆŒν•œ λΆ€μ—¬

- GRANT λͺ…λ Ήμ–΄λ₯Ό μ‚¬μš©

- μ‰Όν‘œλ₯Ό μ‚¬μš©ν•˜μ—¬ κΆŒν•œμ„ μ—¬λŸ¬κ°œ λΆ€μ—¬ν•  μˆ˜λ„, μ—¬λŸ¬ μ‚¬μš©μž λ˜λŠ” λ‘€μ—κ²Œ κΆŒν•œμ„ λΆ€μ—¬ν•  μˆ˜λ„ 있음

--          1.                        2.                       3.
GRANT [μ‹œμŠ€ν…œ κΆŒν•œ] TO [μ‚¬μš©μž 이름/λ‘€(Role) 이름/PUBLIC] [WITH ADMIN OPTION];

  (1) μœ„ ν‘œμ™€ 같이 였라클 λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ μ œκ³΅ν•˜λŠ” μ‹œμŠ€ν…œ κΆŒν•œμ„ 지정 (ν•„μˆ˜)

  (2) κΆŒν•œμ„ λΆ€μ—¬ν•˜λ €λŠ” λŒ€μƒμ„ 지정. μ‚¬μš©μž 이름, λ‘€ 이름 지정 κ°€λŠ₯. PUBLIC은 ν˜„μž¬ 였라클 λ°μ΄ν„°λ² μ΄μŠ€μ˜ λͺ¨λ“  μ‚¬μš©μžμ—κ²Œ κΆŒν•œμ„ λΆ€μ—¬ν•˜κ² λ‹€λŠ” 의미 (ν•„μˆ˜)

  (3) ν˜„μž¬ GRANT 문을 톡해 뢀여받은 κΆŒν•œμ„ λ‹€λ₯Έ μ‚¬μš©μžμ—κ²Œ λΆ€μ—¬ν•  수 μžˆλŠ” κΆŒν•œλ„ 함꼐 λΆ€μ—¬λ°›λŠ” μ˜΅μ…˜. ν˜„μž¬ μ‚¬μš©μžμ˜ κΆŒν•œμ΄ 사라져도 κΆŒν•œμ„ μž¬λΆ€μ—¬ν•œ λ‹€λ₯Έ μ‚¬μš©μžμ˜ κΆŒν•œμ€ μœ μ§€λ¨ (선택)

 

1-2. μ‹œμŠ€ν…œ κΆŒν•œ μ·¨μ†Œ

- REVOKE λͺ…λ Ήμ–΄λ₯Ό μ‚¬μš©

- μ‰Όν‘œλ₯Ό μ‚¬μš©ν•˜μ—¬ κΆŒν•œμ„ μ—¬λŸ¬κ°œ μ·¨μ†Œν•  μˆ˜λ„, μ—¬λŸ¬ μ‚¬μš©μž λ˜λŠ” 둀의 κΆŒν•œμ„ μ·¨μ†Œν•  μˆ˜λ„ 있음

-- 1. 
REVOKE [μ‹œμŠ€ν…œ κΆŒν•œ] FROM [μ‚¬μš©μž 이름/λ‘€(Role) 이름/PUBLIC];

  (1) [μ‚¬μš©μž 이름/λ‘€(Role) 이름/PUBLIC] μ—κ²Œ 주어진 [μ‹œμŠ€ν…œ κΆŒν•œ] 을 μ·¨μ†Œ

 

2. 객체 κΆŒν•œ object privilege

- νŠΉμ • μ‚¬μš©μžκ°€ μƒμ„±ν•œ ν…Œμ΄λΈ”, 인덱슀, λ·°, μ‹œν€€μŠ€ λ“±κ³Ό κ΄€λ ¨λœ κΆŒν•œ

 

객체 κΆŒν•œ λΆ„λ₯˜ 객체 κΆŒν•œ μ„€λͺ…
TABLE
ν…Œμ΄λΈ”
  ALTER   ν…Œμ΄λΈ” λ³€κ²½ κΆŒν•œ
  DELETE   ν…Œμ΄λΈ” 데이터 μ‚­μ œ κΆŒν•œ
  INDEX   ν…Œμ΄λΈ” 인덱슀 생성 κΆŒν•œ
  INSERT   ν…Œμ΄λΈ” 데이터 μ‚½μž… κΆŒν•œ
  REFERENCES   μ°Έμ‘° 데이터 생성 κΆŒν•œ
  SELECT   ν…Œμ΄λΈ” 쑰회 κΆŒν•œ
  UPDATE   ν…Œμ΄λΈ” 데이터 μˆ˜μ • κΆŒν•œ
VIEW
λ·°
  DELETE   λ·° 데이터 μ‚­μ œ κΆŒν•œ
  INSERT   λ·° 데이터 μ‚½μž… κΆŒν•œ
  REFERENCES   μ°Έμ‘° 데이터 생성 κΆŒν•œ
  SELECT   λ·° 쑰회 κΆŒν•œ
  UPDATE   λ·° 데이터 μˆ˜μ • κΆŒν•œ
SEQUENCE
μ‹œν€€μŠ€
  ALTER   μ‹œν€€μŠ€ μˆ˜μ • κΆŒν•œ
  SELECT   μ‹œν€€μŠ€μ˜ CURRVAL, NEXTVAL μ‚¬μš© κΆŒν•œ
…… …… ……

 

 

2-1. 객체 κΆŒν•œ λΆ€μ—¬

- GRANT λͺ…λ Ήμ–΄λ₯Ό μ‚¬μš©

- μ‰Όν‘œλ₯Ό μ‚¬μš©ν•˜μ—¬ κΆŒν•œμ„ μ—¬λŸ¬κ°œ λΆ€μ—¬ν•  μˆ˜λ„, μ—¬λŸ¬ μ‚¬μš©μž λ˜λŠ” λ‘€μ—κ²Œ κΆŒν•œμ„ λΆ€μ—¬ν•  μˆ˜λ„ 있음

GRANT [객체 κΆŒν•œ/ALL PRIVILEGES]			  -- 1.
   ON [μŠ€ν‚€λ§ˆ.객체 이름]				   -- 2.	
   TO [μ‚¬μš©μž 이름/λ‘€(Role) 이름/PUBLIC]	   -- 3.
      [WITH GRANT OPTION];				-- 4.

  (1) μœ„ ν‘œμ™€ 같이 였라클 λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ μ œκ³΅ν•˜λŠ” 객체 κΆŒν•œμ„ 지정. ALL PRIVILEGESλŠ” 객체의 λͺ¨λ“  κΆŒν•œμ„ λΆ€μ—¬ν•˜κ² λ‹€λŠ” 의미 (ν•„μˆ˜)

  (2) κΆŒν•œμ„ λΆ€μ—¬ν•˜λ €λŠ” λŒ€μƒ 객체 지정 (ν•„μˆ˜)

  (3) κΆŒν•œμ„ λΆ€μ—¬ν•˜λ €λŠ” λŒ€μƒ 지정. μ‚¬μš©μž 이름, λ‘€ 이름 지정 κ°€λŠ₯. PUBLIC은 ν˜„μž¬ 였라클 λ°μ΄ν„°λ² μ΄μŠ€μ˜ λͺ¨λ“  μ‚¬μš©μžμ—κ²Œ κΆŒν•œμ„ λΆ€μ—¬ν•˜κ² λ‹€λŠ” 의미 (ν•„μˆ˜)

  (4) ν˜„μž¬ GRANT 문을 톡해 뢀여받은 κΆŒν•œμ„ λ‹€λ₯Έ μ‚¬μš©μžμ—κ²Œ λΆ€μ—¬ν•  수 μžˆλŠ” κΆŒν•œλ„ 함꼐 λΆ€μ—¬λ°›λŠ” μ˜΅μ…˜. ν˜„μž¬ μ‚¬μš©μžμ˜ κΆŒν•œμ΄ 사라지면 κΆŒν•œμ„ μž¬λΆ€μ—¬ν•œ λ‹€λ₯Έ μ‚¬μš©μžμ˜ κΆŒν•œλ„ ν•¨κ»˜ 사라짐 (선택)

 

2-2. 객체 κΆŒν•œ μ·¨μ†Œ

- REVOKE λͺ…λ Ήμ–΄λ₯Ό μ‚¬μš©

- μ‰Όν‘œλ₯Ό μ‚¬μš©ν•˜μ—¬ κΆŒν•œμ„ μ—¬λŸ¬κ°œ μ·¨μ†Œν•  μˆ˜λ„, μ—¬λŸ¬ μ‚¬μš©μž λ˜λŠ” 둀의 κΆŒν•œμ„ μ·¨μ†Œν•  μˆ˜λ„ 있음

REVOKE [객체 κΆŒν•œ/ALL PRIVILEGES]
    ON [μŠ€ν‚€λ§ˆ.객체 이름]				
  FROM [μ‚¬μš©μž 이름/λ‘€(Role) 이름/PUBLIC];