DB] DDL(데이터 μ •μ˜μ–΄) / root - μœ μ € 생성, κΆŒν•œ μ„€μ •

2022. 4. 28. 13:25Β·DataBase/MariaDB

 

μš°λ¦¬κ°€ μ‚¬μš©ν•˜λŠ” λ°μ΄ν„°λ² μ΄μŠ€λŠ” RDB(Relation DataBase)둜 κ΄€κ³„ν˜• λ°μ΄ν„°λ² μ΄μŠ€μ΄λ‹€.

μžμ„Έν•œ μ„€λͺ…은 λ‚˜μ€‘μ—. 일단 κ·Έλ ‡κ΅°ν•˜κ³  λ„˜μ–΄κ°€κΈ°!

 

λ°μ΄ν„°λ² μ΄μŠ€ > ν…Œμ΄λΈ” > ν•„λ“œ

1. μ—¬λŸ¬ 데이터(ν•„λ“œ)듀이 λͺ¨μ—¬μžˆλŠ” 것을 ν…Œμ΄λΈ”(Table)이라고 ν•œλ‹€.

  - ν…Œμ΄λΈ”μ€ μžλ°”λ‘œ 치면 클래슀(class)와 κ°™λ‹€κ³  λ³Ό 수 μžˆλ‹€.

2. κ·Έ ν…Œμ΄λΈ”λ“€μ΄ λͺ¨μ—¬μžˆλŠ” 것을 λ°μ΄ν„°λ² μ΄μŠ€(Database)라고 ν•œλ‹€.

  - λ°μ΄ν„°λ² μ΄μŠ€λŠ” μžλ°”μ˜ μžλ°”νŒ¨ν‚€μ§€(package) 와 κ°™λ‹€κ³  λ³Ό 수 μžˆλ‹€.

3. ν…Œμ΄λΈ” μ•ˆμ—λŠ” 데이터 즉, ν•„λ“œ(feild)듀이 λ“€μ–΄μžˆλ‹€.

  - λ•Œλ¬Έμ— ν…Œμ΄λΈ” 이름은 ν…Œμ΄λΈ” μ•ˆμ˜ ν•„λ“œ(데이터)λ₯Ό μœ μΆ”ν•  수 있게 적어쀀닀.

  - μžλ°”μ˜ 클래슀 이름도 클래슀 μ•ˆμ˜ λ©”μ„œλ“œλ₯Ό μœ μΆ”ν•  수 μžˆλ„λ‘ 적듯이.

 

DBeaverμ—μ„œ 주석은 -- 와 /**/ 이닀.

ν•œ 쀄 주석을 μ‚¬μš©ν•  λ•Œ -- 뒀에 λ›°μ–΄μ“°κΈ°λ₯Ό κΌ­ ν•΄μ£Όμ–΄μ•Όν•œλ‹€.

 

Database 생성

λ°μ΄ν„°λ² μ΄μŠ€κ°€ μžˆμ–΄μ•Ό ν…Œμ΄λΈ”κ³Ό ν•„λ“œλ“€μ΄ λ“€μ–΄κ°ˆ 수 μžˆμœΌλ―€λ‘œ

ν…Œμ΄λΈ”κ³Ό μœ μ €λ₯Ό 생성해주기 전에 μ•žμœΌλ‘œ μ‚¬μš©ν•  λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό λ¨Όμ € 생성해쀀닀.

create database [λ°μ΄ν„°λ² μ΄μŠ€ 이름];

CREATE / ALTER / DROP

DDL (Database Definition Language) λ°μ΄ν„°μ •μ˜μ–΄

: λ°μ΄ν„°λ² μ΄μŠ€, ν…Œμ΄λΈ”κ³Ό 같이 데이터 ꡬ쑰와 κ΄€λ ¨λœ λͺ…λ Ήμ–΄λ“€

CREATE : λ§Œλ“€κΈ°

ALTER : μˆ˜μ •ν•˜κΈ°

DROP : μ‚­μ œν•˜κΈ°

  • create둜 λ§Œλ“  건 drop으둜 μ‚­μ œ, alter둜 μˆ˜μ •
  • λ‚˜μ€‘μ— insert둜 λ§Œλ“  것과 ν—·κ°ˆλ¦¬λ©΄ μ•ˆλ¨! delete둜 μ‚­μ œ, update둜 μˆ˜μ •

 

ROOT - μ‚¬μš©μž 와 κΆŒν•œ μ„€μ •

처음 DBλ₯Ό μ„€μΉ˜ν•  λ•Œ λ§Œλ“€μ–΄μ€€ root둜 μ‚¬μš©μžμ™€ κΆŒν•œμ„ 섀정해쀄 수 μžˆλ‹€.

 

  • rootλŠ” λͺ¨λ“  κΆŒν•œμ„ κ°€μ§€κ³  μžˆλ‹€.
  • rootλ₯Ό 톡해 μ‚¬μš©μžμ˜ λͺ…λ Ήμ–΄ μ‹€ν–‰ 및 μ ‘κ·Ό κΆŒν•œμ„ μ‘°μ •ν•  수 μžˆλ‹€.
  • rootλ₯Ό 톡해 user 생성이 κ°€λŠ₯ν•˜κ³ , μƒμ„±μ‹œ μ ‘κ·Ό IPλŒ€μ—­κΉŒμ§€ μ„€μ •ν•  수 μžˆλ‹€.

1) μœ μ € 생성

CREATE USER [μœ μ €μ΄λ¦„]@[접속가λŠ₯ IP] IDENTIFIED BY [λΉ„λ°€λ²ˆν˜Έ];

쿼리문 μž‘μ„± 후에 ctrl + enterν•˜λ©΄ μ»€μ„œκ°€ λ†“μ—¬μžˆλŠ” μ€„μ˜ 쿼리문이 μ‹€ν–‰λœλ‹€.

μ£Όμ˜ν•΄μ•Όν•  점은 μ—¬λŸ¬ 번 λˆ„λ₯΄λ©΄ 쀑볡 생성이 λ˜κ±°λ‚˜ μ•„λ¬΄νŠΌ 였λ₯˜κ°€ λ‚˜κ²Œ λœλ‹€. 

쿼리문도 ν‹€λ¦° 것 μ—†λŠ”μ§€ 잘 μ‚΄νŽ΄λ³΄λ©° μ“°κΈ°! μ§€κΈˆμ€ μ—°μŠ΅μ΄μ§€λ§Œ μ‹€μ œλ‘œλŠ” 데이터λ₯Ό μˆ˜μ •,μ‚­μ œ ν•˜λŠ” 것을 맀우 μ‹ μ€‘νžˆ νŒλ‹¨ν•΄μ•Όν•˜κΈ° λ•Œλ¬Έμ΄λ‹€.

 

2) μƒμ„±λœ μœ μ € 확인

  • * 이 λͺ¨μ–‘은 λͺ¨λ“ ! μ΄λΌλŠ” μ˜λ―Έμ΄λ‹€.
  • 두 번째 select λ¬Έ 처럼 λͺ¨λ“  ν•­λͺ©μ΄ μ•„λ‹Œ νŠΉμ • ν•­λͺ©λ§Œ κ°€μ Έμ˜¬ μˆ˜λ„ μžˆλ‹€. μ € μˆœμ„œλ₯Ό λ°”κΏ”μ£Όλ©΄ λΆˆλŸ¬μ˜€λŠ” μˆœμ„œ λ˜ν•œ 달라진닀.
  • select 문은 DML(λ°μ΄ν„°μ‘°μž‘μ–΄)둜 뒀에 μ„€λͺ…

 

3) κΆŒν•œ 뢀여와 κΆŒν•œ 회수

- κΆŒν•œ λΆ€μ—¬ν•˜κΈ°

GRANT [κΆŒν•œ] ON [λ°μ΄ν„°λ² μ΄μŠ€.ν…Œμ΄λΈ”] TO [μ‚¬μš©μž];

GRANT : κΆŒν•œμ„ λΆ€μ—¬ν•˜κ² λ‹€.

[κΆŒν•œ] : μ–΄λ–€ κΆŒν•œμ„ 쀄 것인지

ON [λ°μ΄ν„°λ² μ΄μŠ€.ν…Œμ΄λΈ”] : μ–΄λ–€ 데베,ν…Œμ΄λΈ”μ— λŒ€ν•œ κΆŒν•œ

TO [μ‚¬μš©μž] : κΆŒν•œμ„ νŠΉμ • μ‚¬μš©μžμ—κ²Œ μ£ΌλŠ” 것이기 λ•Œλ¬Έμ— toλ₯Ό μ“΄λ‹€

 

κΆŒν•œ λΆ€μ—¬ μ˜ˆμ‹œ

  • *.* : λͺ¨λ“  λ°μ΄ν„°λ² μ΄μŠ€, λͺ¨λ“  ν…Œμ΄λΈ”
  • mysql.* : mysql λ°μ΄ν„°λ² μ΄μŠ€, λͺ¨λ“  ν…Œμ΄λΈ”
  • select 문으둜 μ‘°νšŒν•˜λ©΄ κΆŒν•œμ΄ Y/N으둜 ν‘œμ‹œλ˜μ–΄ μžˆμ–΄ 확인해볼 수 μžˆλ‹€.

νŒŒλž€ 쀄이 읽기,μ“°κΈ°,μˆ˜μ •,μ‚­μ œ κΆŒν•œμ„ 받은 user002

 

- κΆŒν•œ νšŒμˆ˜ν•˜κΈ°

REVOKE [κΆŒν•œ] ON [λ°μ΄ν„°λ² μ΄μŠ€.ν…Œμ΄λΈ”] FROM [μ‚¬μš©μž];

user002에 μˆ˜μ • κΆŒν•œλ§Œ 남겨 λ†“μ•˜λ‹€.
Update κΆŒν•œ λΆ€λΆ„λ§Œ Y, λ‚˜λ¨Έμ§€λŠ” N으둜 변경됨

 

4) μœ μ € μ‚­μ œ

DROP USER [아이디];
DROP USER [μœ μ €μ΄λ¦„]@[접속가λŠ₯IP];

*** 데이터λ₯Ό μˆ˜μ •,μ‚­μ œ ν•˜λŠ” 것을 맀우 μ‹ μ€‘νžˆ νŒλ‹¨ν•΄μ•Όν•œλ‹€!! ***

  • drop user [아이디] 인데 [아이디] μ•ˆμ—λŠ” [μœ μ €μ΄λ¦„]@[접속가λŠ₯IP] κ°€ λͺ¨λ‘ λ“€μ–΄κ°€μ•Όν•œλ‹€.
  • 'web_user'@'192.168.%' μ΄λŸ°μ‹
  • μœ μ € 생성할 λ•Œ μœ μ €μ•„μ΄λ””μ™€ 접속IP와 같은 것듀을 잘λͺ» μ κ±°λ‚˜ μ€‘λ³΅μœΌλ‘œ μ μ—ˆλŠ”λ° κ·Έ μ΄ν›„λ‘œ 문법 였λ₯˜μ°½μ΄ 계속 λ–΄λ‹€. μ§€μš°λŠ” 방법도 아직 λͺ°λΌ μ• λ¨Ήμ—ˆλŠ”λ° create둜 μƒμ„±ν•œ 것듀은 drop으둜 μ§€μšΈ 수 μžˆμ—ˆλ‹€. 
  • μ²˜μŒμ— drop user web_user; λŠ” κ·Έλƒ₯ λμ—ˆλŠ”λ° 처음 μƒμ„±ν–ˆλ˜ 것이 λͺ¨λ“  IP 접속 ν—ˆμš©μΈ '%'둜 μƒμ„±ν–ˆμ–΄μ„œ μœ μ €μ΄λ¦„μΈ web_user만 써도 됐던 것 κ°™λ‹€.
  • μœ μ €μ΄λ¦„ web_user에 νŠΉμ •IP만 접속 ν—ˆμš©μœΌλ‘œ ν•œ 것은 ν’€λ‘œ 적어주지 μ•Šμ•„ μ•ˆμ§€μ›Œμ‘Œλ˜ 것! γ…Žγ…Ž λ‹Ήν™©ν–ˆμ—ˆμŒ.

 

5) λΉ„λ°€λ²ˆν˜Έ λ³€κ²½

SET PASSWORD FOR [μ‚¬μš©μž] = PASSWORD([λΉ„λ°€λ²ˆν˜Έ]);

root μ—μ„œλ§Œ user의 λΉ„λ°€λ²ˆν˜Έλ₯Ό λ³€κ²½ν•  수 μžˆλ‹€.

λΉ„λ°€λ²ˆν˜ΈλŠ” μ•”ν˜Έν™”λ˜μ–΄ μ €μž₯되기 λ•Œλ¬Έμ— μš°λ¦¬κ°€ μ–΄λ–€ κ³„μ •μ˜ λΉ„λ°€λ²ˆν˜Έ μžƒμ–΄λ²„λ Έμ„ λ•Œ λΉ„λ°€λ²ˆν˜Έ μ°ΎκΈ°λ₯Ό ν•˜λ©΄ 이전 λΉ„λ°€λ²ˆν˜Έλ₯Ό μ•Œλ €μ£ΌλŠ” λŒ€μ‹  μƒˆλ‘œμš΄ λΉ„λ°€λ²ˆν˜Έλ₯Ό μ„€μ •ν•  수 μžˆλ„λ‘ λ„μ™€μ£ΌλŠ” 것이닀.

 

 

 

728x90
λ°˜μ‘ν˜•
μ €μž‘μžν‘œμ‹œ (μƒˆμ°½μ—΄λ¦Ό)

'DataBase > MariaDB' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

DB] DML 2 - SELECT  (0) 2022.04.28
DB] DML 1 - INSERT / UPDATE / DELETE / UPSERT  (0) 2022.04.28
DB] DDL(데이터 μ •μ˜μ–΄) / ν…Œμ΄λΈ”  (0) 2022.04.28
DB] DBeaver μ‚¬μš©  (0) 2022.04.28
DB] Maria DB , DBeaver μ„€μΉ˜  (0) 2022.04.25
'DataBase/MariaDB' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
  • DB] DML 1 - INSERT / UPDATE / DELETE / UPSERT
  • DB] DDL(데이터 μ •μ˜μ–΄) / ν…Œμ΄λΈ”
  • DB] DBeaver μ‚¬μš©
  • DB] Maria DB , DBeaver μ„€μΉ˜
bamDal
bamDal
κ΄€μ‹¬μžˆλŠ” λΆ„μ•Ό κ³΅λΆ€ν•˜λŠ” λΈ”λ‘œκ·Έ.....πŸŒ™πŸŒ°
  • bamDal
    πŸŒ™πŸŒ°λ‹¬λ°€μ— μ½”λ”©
    bamDal
  • 전체
    였늘
    μ–΄μ œ
    • λΆ„λ₯˜ 전체보기
      • TIL
      • Back-End
        • JAVA
        • SPRING
        • 파이썬
        • Linux
      • DataBase
        • MariaDB
      • CS
        • 자료ꡬ쑰, μ•Œκ³ λ¦¬μ¦˜
      • Infra
      • Tool
        • Git
        • IntelliJ
      • Etc
      • μ•Œκ³ λ¦¬μ¦˜ ν•™μŠ΅
      • Front-End
        • jQuery
        • AJAX
  • λΈ”λ‘œκ·Έ 메뉴

    • ν™ˆ
    • μΉ΄ν…Œκ³ λ¦¬
    • νƒœκ·Έ
  • 링크

    • Github
  • 곡지사항

  • 인기 κΈ€

  • 졜근 κΈ€

  • λ°˜μ‘ν˜•
    250x250
  • hELLOΒ· Designed Byμ •μƒμš°.v4.10.3
bamDal
DB] DDL(데이터 μ •μ˜μ–΄) / root - μœ μ € 생성, κΆŒν•œ μ„€μ •
μƒλ‹¨μœΌλ‘œ

ν‹°μŠ€ν† λ¦¬νˆ΄λ°”