본문 바로가기

Database/Mariadb

[Mariadb] db 및 user 생성 방법

728x90
반응형

Mariadb 를 이용할때 Super 권한자 User 인 root 를 사용하면 보안에 이슈가 생길 수 있다.

그래서 Application 개발시 Application 에 맞는 db, user 를 생성하고 권한을 부여하는 것으로 개발을 진행하면 된다.

현재 Nifi를 공부하고 있으니 데이터베이스 : nifi_db, User : nifi 를 만들어 보자.

 

## 환경정보

  • Mariadb 10.3.14

 

1. root 권한으로 접속한다.

-u 옵션은 사용자를 지정, -p 옵션은 패스워드를 지정

mysql -uroot -pchangeme

[Mariadb] root 접속

 

User 생성시 ERROR 1396 (HY000) 에러코드가 발생하면 이미 User가 존재하는 것이다. 

ERROR 1396 (HY000): Operation CREATE USER failed for 'nifi'@'%'

[Mariadb] user 생성

 

User가 존재하는지 조회

use mysql;
select host, user from user where user = 'nifi';

[Mariadb] User 정보조회

 

2. nifi_db database 생성

create database nifi_db character set utf8mb4 collate utf8mb4_unicode_ci;

[mariadb] database 생성

 

db를 생성할때 character set을 utf8mb4으로 지정하는 것은 문자열 한글자를 4byte 로 설정하는 것이다.

요즘 모바일기기의 이모티콘이 많아지면서 utf8(3byte)로 지정하면 3byte를 넘어가는 문자열이 제대로 표시 안되는 문제가 발생될 수 있다.

새로 진행되는 프로젝트가 있으면 웬만하면(?) utf8mb4 으로 지정하는 것을 추천한다.

 

<utf8mb4 관련하여 엄청 좋은 포스팅을 추천>

medium.com/oldbeedev/mysql-utf8mb4-character-set-%EC%84%A4%EC%A0%95%ED%95%98%EA%B8%B0-da7624958624

 

[MariaDB] Setting utf8mb4 Character Set

사실 이 모든 문제의 시작은 HeidiSQL 때문이었습니다. my.ini 설정을 아무리 바꿔도 HeidiSQL에서는 상태가 바뀌지 않았습니다.

medium.com

 

db 생성확인

show databases like '%nifi%';

[mariadb] database 조회

 

3. nifi user 생성 및 권한부여

  • 예) grant all privileges on <데이터베이스명>.<테이블명> to <User명>@<접속위치> identified by <접속패스워드>;
  • nifi_db.* - nifi_db만 사용할 수 있는 권한을 부여(다른 데이터베이스/테이블의 데이터를 조작하지 말자.)
  • 'nifi'@'%' - nifi user에 대해서 '%' 를 부여하면 localhost/외부 모든 곳에서 접속할 수 있는 권한을 부여하는 것이다.
  • mariadb 가 설치된 서버에서만 접속을 하고 싶으면 'nifi'@'localhost' 로 지정하면 되지만 application을 개발할때는 개발자PC에서 접속을 해야하기때문에 '%' 로 지정하여 주자.
  • identified by 'changeme' 는 접속시 암호를 지정(여기서는 보안에 아주 취약한 changeme로 설정하자.!!;;)
  • 권한을 추가한 후 flush privileges 를 꼭 실행하자. - 권한 테이블에서 모든 권한을 다시 로드하는 명령어이다. (https://mariadb.com/kb/en/flush/ 참고)
create user nifi;
grant all privileges on nifi_db.* to 'nifi'@'%' identified by 'changeme';
flush privileges;

[mariadb] user 생성 및 권한부여

 

4. nifi user로 nifi_db를 접속

mysql -unifi -Dnifi_db -pchangeme
show tables;

[mariadb] nifi user 접속

 

5. HeidiSQL Tool 접속

개인적으로 좋아하는 SqlTool - HeidiSQL 을 이용하여 nifi_db 를 접속해보자.

[Mariadb] HeidiSQL 세션관리자

 

select version(), database(), current_user()

[Mariadb] HeidiSQL를 이용한 DB기본정보조회

 

<끄읕>

 

728x90
반응형