r잡초처럼
바른 프로그래밍
r잡초처럼
전체 방문자
오늘
어제
  • 분류 전체보기 (124)
    • FastAPI (7)
    • 끄적끄적 (2)
    • Python (17)
    • Django (31)
    • Database (2)
    • Docker (7)
    • 디자인패턴 (2)
    • CS 공부 (12)
      • 알고리즘 (2)
      • 자료 구조 (1)
      • 네트워크 (7)
      • IT 지식 (1)
      • 운영체제 (1)
    • 기타 팁들 (10)
    • Aws (2)
    • 독서 (1)
    • 코딩테스트 공부 (1)
      • 백준 (0)
      • 프로그래머스 (1)
    • DevOps (13)
    • TIL (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • pycharm
  • 5장 회사에서 하는 랜 구성
  • 물리 계층
  • 7장
  • CS 지식
  • 랜 카드
  • 파이썬 클린 코드
  • Batch
  • encoding
  • 케이블의 종류
  • pytest
  • 전기 신호
  • docker
  • cp949
  • fastapi
  • query param
  • 네트워크
  • dotenv
  • 책 리뷰
  • 랜과 왠
  • 컴퓨터 기본 지식
  • depends
  • validate
  • 상속과 컴포지션
  • poetry
  • preonboarding
  • 완벽한 IT 인프라 구축을 위한 Docker
  • 6장
  • 모두의 네트워크
  • 상속 안티 패턴

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
r잡초처럼

바른 프로그래밍

MariaDB 계정 생성 및 권한 설정(그룹 생성)
Database

MariaDB 계정 생성 및 권한 설정(그룹 생성)

2023. 2. 5. 13:07

MariaDB에서 계정을 생성하고 권한을 주는 것까지 설정해보려고 한다.

0. 실습환경

Docker에서 mariadb 10.4를 설치하였다. 여기서 실습을 해보자. 

docker run -d -p {호스트포트}:{컨테이너 포트}  \
       -e {set environment varables:여기서는 루트 계정 password 설정}  \
       -v {host volumn 경로}:{컨테이너에 mount할 경로}  \ 
       -name {container name 설정} {mariadb image name}

 

MariaDB 유저 생성

이제 실습 환경에서 유저를 생성해 보자

1 접속

docker exec -it {mariaDB name} bash  # 컨테이너 접속
mysql -u root -p  # mariaDB 접속

db 서버에 접속한 모습

이제 데이터베이스(스키마)를 만들어보자

CREATE DATABASE db_name ...;

tutorial 스키마 생성

tutorial이라는 데이터베이스를 만들고 여기에 접속하여서 유저를 생성하고 권한을 부여해 보자.

2 User 생성하기

user를 생성할 때는 접속 ip를 설정할 수 있다. 만약 '%'로 설정한다면 외부의 모든 ip에서 접속이 가능하다. 와일드카드와 동일한 기능이다.

CREATE USER foo@localhost IDENTIFIED BY {password};  # localhost 에서만 접속 가능
CREATE USER foo2@192.X.X.X IDENTIFIED BY {password};  # 192.X.X.X 에서만 접속 가능
CREATE USER foo3@'%' IDENTIFIED BY {password};  # 외부 모든 ip에서 접속 가능

아까 만들었던 foo3으로 접속을 해보자

NOTE!
만약 로컬 환경 내에서 mysql server를 만들었다면 localhost로만 접속하는 계정인 foo만으로도 접속이 가능할 것이다.
하지만 현재 실습환경은 Docker 컨테이너로 DB 서버를 띄운 형태이므로 foo3(외부 접속도 가능한 계정)으로 접속해야 한다.

외부 접속이 가능한 foo3으로 접속하는 모습

3 User 권한 부여하기

현재 데이터베이스를 살펴보면 information_schema밖에 안 보인다. 우린 분명 tutorial 데이터베이스도 생성했는데 안 보이는 이유는 유저가 데이터베이스에 접근할 권한이 없기 때문에다.

foo3으로 보이는 데이터베이스


먼저 데이터베이스를 볼 수 있권한을 부여해 보자. 우선 비교를 위해 스키마를 하나 더 만들자.(root 계정)

그런 다음 foo3에게 tutorial 데이터베이스에 대한 권한만 주자.

GRANT ALL PRIVILEGES ON {database}.{tablename} TO {계정명};
GRANT ALL PRIVILEGES ON tutorial.* TO foo3@'%';  # tutorial 데이터베이스의 모든 테이블의 사용가능한 권한을 foo3@'%' 에게 부여한다.

그리고 다시 확인해 보면

NOTE
권한에 대한 상세 설명은 공식 문서를 참고해 보자. 만약 공식문서를 보기가 어색하면 해당 블로그를 참고하자.

여기까지 권한 부여를 보았다 다음 포스팅에서는 권한 그룹을 생성해서 그룹으로 권한을 설정하는 방법을 살펴보자.


참고

https://mariadb.com/kb/en/create-database/

 

CREATE DATABASE

Create a database.

mariadb.com

https://mariadb.com/kb/en/create-user/

 

CREATE USER

Create new MariaDB accounts.

mariadb.com

https://mentha2.tistory.com/71

 

[MariaDB 사용자 권한 설정] 권한 설정 종류 정리

MariaDB의 root계정은 데이터베이스 서버에 대한 모든 권한을 가지고, 데이터베이스가 지원하는 모든 행위를 할 수 있다. 이 행위에는 데이터베이스, 테이블의 삭제, 다른 사용자 계정의 패스워드

mentha2.tistory.com

 

'Database' 카테고리의 다른 글

MariaDB 그룹 권한 부여하기  (0) 2023.02.06
    'Database' 카테고리의 다른 글
    • MariaDB 그룹 권한 부여하기
    r잡초처럼
    r잡초처럼
    오늘보다 내일 더 나은 개발자가 되기 위한 노력을 기록하는 블로그 입니다.

    티스토리툴바