λ°μ΄ν°λ² μ΄μ€ μμ€ν μμλ μ¬μ©μμ κΆν κ΄λ¦¬κ° μ€μν μμλ‘ κ°μ‘°λ©λλ€. νΉν MariaDBμμλ μ¬μ©μμ νΈμ€νΈ μ 보λ₯Ό νμ©νμ¬ λ‘컬 νΈμ€νΈμ μΈλΆ μ μμ ꡬλΆνμ¬ λ³΄μμ κ°ννλ κ²μ΄ νμν©λλ€. μ΄λ₯Ό ν΅ν΄ λ°μ΄ν°λ² μ΄μ€ μμ€ν μ μμ μ±μ λμΌ μ μμ΅λλ€.
β£ λͺ©μ°¨
μ¬μ©μ κΆν κ°μπ
MariaDBμμ μ¬μ©μλ λ°μ΄ν°λ² μ΄μ€μ μ κ·Όνκ³ μμ μ μννλ λ° μ¬μ©λ©λλ€. μ¬μ©μλ μ¬μ©μ μ΄λ¦κ³Ό νΈμ€νΈ μ λ³΄λ‘ μλ³λ©λλ€. κΆνμ μ¬μ©μκ° μνν μ μλ μμ μ κ²°μ νλλ° μ€μν μν μ ν©λλ€.
μ¬μ©μ(User)
- μ¬μ©μλ λ°μ΄ν°λ² μ΄μ€μ μ κ·Όνκ³ μμ μ μννλ κ°μ²΄λ₯Ό λνλ λλ€.
- κ° μ¬μ©μλ κ³ μ ν μλ³μ(μ¬μ©μ μ΄λ¦)λ₯Ό κ°μ§κ³ μμ΅λλ€.
- μ¬μ©μλ λ‘컬 νΈμ€νΈ λλ μΈλΆ νΈμ€νΈμμ λ°μ΄ν°λ² μ΄μ€μ μ μν μ μμ΅λλ€.
κΆν(Permission)
- κΆνμ μ¬μ©μκ° λ°μ΄ν°λ² μ΄μ€μμ μνν μ μλ μμ μ μ μν©λλ€.
- λ°μ΄ν°λ² μ΄μ€ μμ€ν μ μ¬μ©μμ λν κΆνμ λΆμ¬νκ³ μ΄λ₯Ό ν΅ν΄ μ΄λ€ μμ μ μνν μ μλμ§ κ²°μ ν©λλ€.
- μ£Όμ κΆνμλ SELECT(μ‘°ν), INSERT(μ½μ ), UPDATE(μμ ), DELETE(μμ ), CREATE(μμ±), DROP(μ κ±°) λ±μ΄ μμ΅λλ€.
- κ° κΆνμ νΉμ λ°μ΄ν°λ² μ΄μ€ κ°μ²΄(ν μ΄λΈ, λ·° λ±)μ λν μμ μ μνν μ μλ κΆνμ λνλ λλ€.
νΈμ€νΈ(Host)
- νΈμ€νΈλ μ¬μ©μκ° μ μνλ ν΄λΌμ΄μΈνΈ μ»΄ν¨ν°λ₯Ό λνλ λλ€.
- μ¬μ©μλ νΉμ νΈμ€νΈμμ λ°μ΄ν°λ² μ΄μ€μ μ μν μ μμ΅λλ€.
- νΈμ€νΈ μ 보λ₯Ό νμ©νμ¬ λ‘컬 νΈμ€νΈμ μΈλΆ μ μμ ꡬλΆνμ¬ λ³΄μ μ μ±
μ μ μ©ν μ μμ΅λλ€.
κΆνμ μ’ λ₯π€ΉβοΈ
SELECT(μ‘°ν)
- λ°μ΄ν°λ² μ΄μ€ ν μ΄λΈμμ λ°μ΄ν°λ₯Ό μ½μ΄μ€λ μμ μ μνν μ μλ κΆνμ λλ€.
- SELECT λ¬Έμ μ¬μ©νμ¬ ν μ΄λΈμ λ°μ΄ν°λ₯Ό μ‘°ννκ³ κ²μν μ μμ΅λλ€.
INSERT(μ½μ )
- λ°μ΄ν°λ² μ΄μ€ ν μ΄λΈμ μλ‘μ΄ λ°μ΄ν°λ₯Ό μΆκ°νλ μμ μ μνν μ μλ κΆνμ λλ€.
- INSERT INTO λ¬Έμ μ¬μ©νμ¬ ν μ΄λΈμ μλ‘μ΄ λ μ½λλ₯Ό μΆκ°ν μ μμ΅λλ€.
UPDATE(μμ )
- λ°μ΄ν°λ² μ΄μ€ ν μ΄λΈμμ κΈ°μ‘΄ λ°μ΄ν°λ₯Ό μμ νλ μμ μ μνν μ μλ κΆνμ λλ€.
- UPDATE λ¬Έμ μ¬μ©νμ¬ ν μ΄λΈμ κΈ°μ‘΄ λ μ½λλ₯Ό μμ νκ±°λ μ λ°μ΄νΈν μ μμ΅λλ€.
DELETE(μμ )
- λ°μ΄ν°λ² μ΄μ€ κ°μ²΄λ₯Ό μμ±νλ μμ μ μνν μ μλ κΆνμ λλ€.
- DELETE FROM λ¬Έμ μ¬μ©νμ¬ ν μ΄λΈμμ νΉμ λ μ½λλ₯Ό μμ ν μ μμ΅λλ€.
CREATE(μμ±)
- λ°μ΄ν°λ² μ΄μ€ κ°μ²΄λ₯Ό μμ±νλ μμ μ μνν μ μλ κΆνμ λλ€.
- CREATE TABLE, CREATE INDEX λ±μ λ¬Έμ μ¬μ©νμ¬ μλ‘μ΄ ν μ΄λΈ, μΈλ±μ€ λ±μ μμ±ν μ μμ΅λλ€.
DROP(μ κ±°)
- λ°μ΄ν°λ² μ΄μ€ κ°μ²΄λ₯Ό μμ νλ μμ μ μνν μ μλ κΆνμ λλ€.
- DROP TABLE, DROP INDEX λ±μ λ¬Έμ μ¬μ©νμ¬ ν μ΄λΈ, μΈλ±μ€ λ±μ μμ ν μ μμ΅λλ€.
ALTER(λ³κ²½)
- λ°μ΄ν°λ² μ΄μ€ κ°μ²΄μ ꡬ쑰λ₯Ό λ³κ²½νλ μμ μ μνν μ μλ κΆνμ λλ€.
- ALTER TABLE, ALTER INDEX λ±μ λ¬Έμ μ¬μ©νμ¬ ν μ΄λΈ ꡬ쑰λ₯Ό λ³κ²½νκ±°λ μΈλ±μ€λ₯Ό μμ ν μ μμ΅λλ€.
GRANT(λΆμ¬)
- λ€λ₯Έ μ¬μ©μμκ² κΆνμ λΆμ¬νλ μμ μ μνν μ μλ κΆνμ λλ€.
- GRANT λ¬Έμ μ¬μ©νμ¬ λ€λ₯Έ μ¬μ©μμκ² SELECT, INSERT, UPDATE λ±μ κΆνμ λΆμ¬ν μ μμ΅λλ€.
μ΄λ¬ν μ£Όμ κΆν μ’
λ₯λ λ°μ΄ν°λ² μ΄μ€ μμ€ν
μμ μ¬μ©μμ μ κ·Όκ³Ό μμ
μ μ μ΄νλ λ° μ€μν μν μ ν©λλ€. μ¬μ©μμ λ°λΌ νμν κΆνμ μ μ ν λΆμ¬νμ¬ λ°μ΄ν°λ² μ΄μ€μ 보μμ μ μ§νκ³ λ°μ΄ν°μ 무결μ±μ 보μ₯ν μ μμ΅λλ€.
λ‘컬 νΈμ€νΈμ μΈλΆ μ μμ ꡬλΆπ₯
λ‘컬 νΈμ€νΈμ μΈλΆ μ μμ λ°μ΄ν°λ² μ΄μ€ 보μμ μμ΄μ ν΅μ¬μ μΈ μμμ λλ€. λ‘컬 νΈμ€νΈλ λ°μ΄ν°λ² μ΄μ€μ μ§μ μ μνλ κ²½μ°λ₯Ό μλ―Ένλ©°, μΈλΆ μ μμ μΈλΆ λ€νΈμν¬λ₯Ό ν΅ν΄ μ μνλ κ²½μ°λ₯Ό μλ―Έν©λλ€. μ΄ λμ ꡬλΆνμ¬ λ³΄μ μ μ± μ μ μ©νλ κ²μ΄ μ€μν©λλ€. μ¬κΈ°μλ λͺ κ°μ§ μ΄μ κ° μμ΅λλ€.
- λ΄λΆ VS μΈλΆ μν: λ‘컬 νΈμ€νΈλ λ°μ΄ν°λ² μ΄μ€ μμ€ν μ μ§μ μ μνλ κ²½μ°λ‘, μΌλ°μ μΌλ‘ λ μ λ’°ν μ μλ νκ²½μ λλ€. λ°λ©΄μ μΈλΆ μ μμ μΈλΆ λ€νΈμν¬λ₯Ό ν΅ν΄ μ μνλ κ²½μ°λ‘, 보μ μνμ΄ λμ μ μμ΅λλ€.
- μ κ·Ό μ μ΄ κ°ν: λ‘컬 νΈμ€νΈμ μΈλΆ μ μμ ꡬλΆν¨μΌλ‘μ¨, λ‘컬 νΈμ€νΈμμλ λ³΄λ€ μ격ν μ κ·Ό μ μ΄λ₯Ό μ μ©ν μ μμ΅λλ€. μ΄λ λ΄λΆ μ¬μ©μμκ²λ λ λ§μ κΆνμ μ£Όκ³ μΈλΆ μ¬μ©μμκ²λ μ νλ κΆνμ λΆμ¬ν μ μλλ‘ ν©λλ€.
- λ€νΈμν¬ λ³΄μ: μΈλΆμ μμ μΈλΆ λ€νΈμν¬λ₯Ό ν΅ν΄ μ΄λ£¨μ΄μ§κΈ° λλ¬Έμ, λ€νΈμν¬ μμ€μ 보μ μ μ± μ΄ νμν©λλ€. μ΄λ₯Ό ν΅ν΄ μΈλΆμμμ λΆλ²μ μΈ μ κ·Όμ λ°©μ§ν μ μμ΅λλ€.
- κ°μ λ° λ‘κΉ : λ‘컬 νΈμ€νΈμ μΈλΆ μ μμ ꡬλΆνμ¬ λ³΄μ μ μ± μ μ μ©νλ©΄, κ°κ°μ νκ²½μμ λ°μνλ νλμ λͺ¨λν°λ§νκ³ λ‘κΉ νλ κ²μ΄ μ©μ΄ν΄μ§λλ€. μ΄λ 보μ μ¬κ³ λ°μ μ μ μνκ² λμν μ μλλ‘ λμμ€λλ€.
λ°λΌμ λ°μ΄ν°λ² μ΄μ€ μμ€ν μμλ λ‘컬 νΈμ€νΈμ μΈλΆ μ μμ ꡬλΆνμ¬ λ³΄μ μ μ± μ μ μ©νλ κ²μ΄ μ€μν©λλ€.
μ¬μ©μ μμ±π
λ°μ΄ν°λ² μ΄μ€ μ¬μ©μ μμ±μ μ£Όμ λͺ©μ μ 보μκ³Ό μ κ·Ό μ μ΄μ λλ€. λ°μ΄ν°λ² μ΄μ€ μ¬μ©μλ₯Ό λΆλ¦¬νμ¬ κ° μ¬μ©μμκ² νμν κΆνλ§ λΆμ¬ν¨μΌλ‘μ¨ λ°μ΄ν°λ² μ΄μ€μ μμ μ±μ λμ΄κ³ , κ° μ¬μ©μκ° μνν μ μλ μμ μ μ νν μ μμ΅λλ€.
λ‘컬μμ μ μν μ μλ μ¬μ©μ μμ±
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
- CREATE USER: μλ‘μ΄ μ¬μ©μλ₯Ό μμ±νλ λͺ λ Ήμ΄μ λλ€. `username`μ΄λΌλ μ¬μ©μλ₯Ό μμ±νκ³ `localhost`λΌλ νΈμ€νΈ (νμ¬ μ»΄ν¨ν°)μμλ§ μ μμ νμ©νλλ‘ μ€μ νμ΅λλ€.
- @: μ¬μ©μ μ΄λ¦κ³Ό νΈμ€νΈλ₯Ό ꡬλΆνλ ꡬλΆμμ λλ€. μ΄ κ²½μ° `username`μ΄λΌλ μ¬μ©μ μ΄λ¦κ³Ό `localhost`λΌλ νΈμ€νΈλ₯Ό ꡬλΆν©λλ€.
- DENTIFIED BY: μ¬μ©μμκ² μνΈλ₯Ό μ€μ νλ μ΅μ μ λλ€. μ¬κΈ°μλ 'password'λΌλ μνΈλ₯Ό μ¬μ©νλλ‘ μ§μ νμ΅λλ€.
- λΉλ°λ²νΈλ ꡬμ±μμκ° μλ λ¬Έμμ΄λ‘ μΈμν©λλ€.
μ΄λ κ² μμ±λ μ¬μ©μλ ν΄λΉ νΈμ€νΈ localhostμμλ§ μ μν μ μμΌλ©°, μνΈλ passwordμ
λλ€. μ΄ μ¬μ©μλ₯Ό ν΅ν΄ λ°μ΄ν°λ² μ΄μ€μ μ μνκ³ μμ
μ μνν μ μμ΅λλ€.
μΈλΆμμ μ κ·Όνλ μ¬μ©μ μμ±
CREATE USER `username`@`%` IDENTIFIED BY 'password';
- CREATE USER: μλ‘μ΄ μ¬μ©μλ₯Ό μμ±νλ λͺ λ Ήμ΄μ λλ€. `username`μ΄λΌλ μ¬μ©μλ₯Ό μμ±ν©λλ€.
- @: μ¬μ©μ μ΄λ¦κ³Ό νΈμ€νΈλ₯Ό ꡬλΆνλ ꡬλΆμμ λλ€. μ΄ κ²½μ° `username`μ΄λΌλ μ¬μ©μ μ΄λ¦κ³Ό `localhost`λΌλ νΈμ€νΈλ₯Ό ꡬλΆν©λλ€.
- %: μμΌλμΉ΄λ λ¬Έμλ‘, λͺ¨λ νΈμ€νΈλ₯Ό λνλ
λλ€. λ°λΌμ μ΄ μ¬μ©μλ μ΄λ€ νΈμ€νΈμμλ μ μν μ μκ² λ©λλ€.
λ§μ½ νΉμ μ¬μ©μλ₯Ό νΉμ νΈμ€νΈμμλ§ μ μνλλ‘ μ ννκ³ μΆλ€λ©΄ ν΄λΉ νΈμ€νΈμ IP μ£Όμλ λλ©μΈμ λͺ μνμ¬ μ¬μ©μλ₯Ό μμ±ν μ μμ΅λλ€. νμ§λ§ % λ₯Ό μ¬μ©νλ©΄ λͺ¨λ νΈμ€νΈμμ μ μμ΄ κ°λ₯νλ―λ‘ μ£Όμκ° νμν©λλ€. - DENTIFIED BY: μ¬μ©μμκ² μνΈλ₯Ό μ€μ νλ μ΅μ μ λλ€. μ¬κΈ°μλ 'password'λΌλ μνΈλ₯Ό μ¬μ©νλλ‘ μ§μ νμ΅λλ€.
- λΉλ°λ²νΈλ ꡬμ±μμκ° μλ λ¬Έμμ΄λ‘ μΈμν©λλ€.
λ€μμ μ¬μ©μλ₯Ό νΉμ νΈμ€νΈμμλ§ μ μν μ μλλ‘ μ ννλ μμμ λλ€.
CREATE USER 'study'@'specific_host' IDENTIFIED BY 'test1234';
μ¬κΈ°μ specific_hostλ νΉμ νΈμ€νΈμ IP μ£Όμλ λλ©μΈμ λνλ
λλ€. μ΄λ κ² νλ©΄ ν΄λΉ μ¬μ©μλ μ§μ λ νΈμ€νΈμμλ§ μ μν μ μκ² λ©λλ€.
κΆν λΆμ¬π€
MariaDBμμλ μ¬μ©μλ₯Ό μμ±νκ³ κΆνμ λΆμ¬νλ λ€μν κΈ°λ₯μ μ 곡ν©λλ€. μ¬μ©μ μμ±(CREATE), κΆν λΆμ¬(GRANT), κΆν νμ(REVOKE), κΆν μ μ©(FLUSH) λ±μ κΈ°λ₯μ ν΅ν΄ λ°μ΄ν°λ² μ΄μ€μ 보μμ κ°νν μ μμ΅λλ€.
κΆν λΆμ¬ κΈ°λ³Έ λ¬Έλ²
GRANT λ¬Έμ λ°μ΄ν°λ² μ΄μ€μμ μ¬μ©μμκ² κΆνμ λΆμ¬νλ λ° μ¬μ©λ©λλ€. μ΄ λ¬Έλ²μ λ€μκ³Ό κ°μ΅λλ€.
GRANT κΆν ON λ°μ΄ν°λ² μ΄μ€.ν
μ΄λΈ TO 'μ¬μ©μ'@'νΈμ€νΈ';
μ¬κΈ°μ κ° μμλ λ€μμ μλ―Έν©λλ€.
- κΆν: μ¬μ©μμκ² λΆμ¬ν κΆνμ μ§μ ν©λλ€. SELECT, INSERT, UPDATE, DELETE λ±μ΄ μμ΅λλ€.
- λ°μ΄ν°λ² μ΄μ€: κΆνμ λΆμ¬ν λ°μ΄ν°λ² μ΄μ€λ₯Ό μ§μ ν©λλ€.
- ν μ΄λΈ: κΆνμ λΆμ¬ν νΉμ ν μ΄λΈμ μ νμ μΌλ‘ μ§μ ν μ μμ΅λλ€. μ΄ λΆλΆμ μλ΅νλ©΄ λ°μ΄ν°λ² μ΄μ€μ λͺ¨λ ν μ΄λΈμ λν κΆνμ΄ λΆμ¬λ©λλ€.
- μ¬μ©μ: κΆνμ λΆμ¬ν μ¬μ©μλ₯Ό μ§μ ν©λλ€.
- νΈμ€νΈ: μ¬μ©μκ° μ μν μ μλ νΈμ€νΈλ₯Ό μ§μ ν©λλ€. '%'λ λͺ¨λ νΈμ€νΈλ₯Ό λνλ΄λ μμΌλμΉ΄λμ λλ€.
λͺ¨λ κΆν λΆμ¬
GRANT ALL ON *.* TO `username`@`localhost`;
username μ¬μ©μμ λν΄ λͺ¨λ λ°μ΄ν°λ² μ΄μ€*.* μ λͺ¨λ ν μ΄λΈμ λν λͺ¨λ κΆν ALLμ λΆμ¬ν©λλ€. μ¦, μ΄ μ¬μ©μλ localhostμμ λͺ¨λ λ°μ΄ν°λ² μ΄μ€μ ν μ΄λΈμ λν΄ λͺ¨λ μμ μ μνν μ μκ² λ©λλ€.
νΉμ κΆν λΆμ¬
GRANT SELECT, INSERT ON database_name.table_name TO 'username'@'localhost';
database_name λ°μ΄ν°λ² μ΄μ€μ table_name ν
μ΄λΈμ λν SELECT λ° INSERT κΆνλ§μ κ°μ§λλ€.
κΆν μ μ©
FLUSH PRIVILEGES;
κΆν λ³κ²½ μ¬νμ μ¦μ μ μ©ν μ μλλ‘ FLUSH PRIVILEGES λ¬Έμ μ¬μ©ν©λλ€. μ΄ λͺ λ Ήμ μ€ννλ©΄ λ³κ²½λ κΆνμ΄ μ¦μ μ μ©λ©λλ€.
κΆν νμ
REVOKE ALTER, DROP ON *.* FROM 'username'@'localhost';
λΆνμν κΆνμ νμν μ μμ΅λλ€. REVOKE λ¬Έμ μ¬μ©νμ¬ νΉμ μ¬μ©μμ κΆνμ μ κ±°ν©λλ€.
ν΅μ¬ λ΄μ©π