본문 바로가기

Data/MariaDB

DB] DDL(데이터 정의어) / root - 유저 생성, 권한 설정

 

우리가 사용하는 데이터베이스는 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의 비밀번호를 변경할 수 있다.

비밀번호는 암호화되어 저장되기 때문에 우리가 어떤 계정의 비밀번호 잃어버렸을 때 비밀번호 찾기를 하면 이전 비밀번호를 알려주는 대신 새로운 비밀번호를 설정할 수 있도록 도와주는 것이다.

 

 

 

'Data > 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