[DBMS] MySQL, MariaDB 데이터베이스 &유저 생성

MariaDB 데이터베이스 생성 및 삭제, 이름 변경 방법 그리고 유저 생성과 삭제에 대해 간단히 알아 보겠습니다.

MariaDB 데이터베이스 생성과 삭제

먼저 데이터베이스 목록을 조회합니다.

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| test               |
| ukcresearch        |
+--------------------+
6 rows in set (0.000 sec)

MariaDB [(none)]>

데이터베이스 생성

test01로 데이터베이스를 생성합니다.

MariaDB [(none)]> create database test01;
Query OK, 0 rows affected (0.007 sec)

데이터베이스 삭제

MariaDB [(none)]> drop database test01;
Query OK, 0 rows affected (0.007 sec)

데이터베이스 이름 변경

test01 데이터베이스를 test02로 변경하고 싶은 경우 test02 데이터베이스를 먼저 생성해야 합니다.

먼저 mysqldump로 test01 백업 파일을 생성합니다.

mysqldump -u root -p test01 > test01.sql

test02로 복원합니다.

mysqldump -u root -p test01 > test01.sql
dump의 사전상 의미는 "한 개 컴퓨터 유닛에서 다른 컴퓨터 유닛으로 저장된 자료를 옮겨 넣는 것"으로 dump 뜻 그대로 데이터를 쌓는 것이라고 할 수 있습니다.

MariaDB 유저 생성 및 권한 부여

데이터베이스 생성이 되었다면, 데이터베이스에 접근할 유저를 생성해 줘야 합니다.

먼저 user 조회를 해 보겠습니다. MariaDB를 사용하지만 MySQL DataBase와 User 사용으로 설정되어 있습니다. user 테이블의 host, user, password 조회를 할 경우 mysql 사용으로 변경해 줘야 합니다. my.cnf 설정에서 [mysqld] 설정이 아닌 [mariadb] 설정으로 변경한 후에 select 쿼리문으로 정보를 확인할 수 도 있습니다.

MariaDB [(none)]> use mysql;

Database changed
MariaDB [mysql]> select host, user, password from user;
+-------------------------------------------------+-------------+-----------------------------------+
| Host                                            | User        | Password                                  |
+-------------------------------------------------+-------------+-----------------------------------+
| localhost                                       | mariadb.sys |                                           
| localhost                                       | root        | invalid                                   
| localhost                                       | mysql       | invalid                                   
| localhost                                       | test01     |*C29896FE281F13DDF5E340BCF0EB634CA5 |
| localhost                                       | test02     |*C29896FE281F13DDF5E340BCF0EB634CA5 |
+-------------------------------------------------+-------------+------------------------------------+
8 rows in set (0.001 sec)

MariaDB [mysql]>

사용자(user) 생성

create user 사용자ID; 쿼리로 기본 사용자를 추가할 수 있습니다.

MariaDB [(none)]> CREATE USER test01;

# 내부 접근 사용자 추가 및 패스워드 설정 #
CREATE USER@localhost IDENTIFIED BY '비밀번호';
MariaDB [(none)]> 
CREATE USER test01@'localhost' IDENTIFIED BY '비밀번호';

# 외부접근 사용자 추가 및 패스워드 설정 #
CREATE USER ID@'%' IDENTIFIED BY '비밀번호';

# 특정 ip접근만 허용 및 패스워드 설정 #
CREATE USER@'192.168.0.1' IDENTIFIED BY '비밀번호';

# 특정 대역대만 허용 및 패스워드 설정 #
CREATE USER@'192.168.%' IDENTIFIED BY '비밀번호';

접근 권한 설정: 사용자 생성과 권한을 한번에 생성합니다.

접근 권한이 설정되어 있지 않으면 접근 시 에러가 발생하기 때문에 접근 권한을 설정해 줘야 합니다. GRANT ALL PRIVILEGES ON 쿼리로 접근 권한과 유저 생성을 동시에 하는 것이 더 빠를 수 있습니다.

호스트는 보통 로컬호스트 설정을 하며, 경우에 따라 특정 IP, 내부 및 외부 IP 설정을 사용자 생성에서의 설정 옵션처럼 적용해서 사용할 수 있습니다.

GRANT ALL PRIVILEGES ON 데이터베이스명.테이블명 TO 사용자@'호스트' IDENTIFIED by '바꿀 DB패스워드';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON test01.* TO test01@'localhost' IDENTIFIED by '비밀번호';

사용자 삭제

사용자 삭제 방법은 두가지입니다.

DROP USER '유저ID';
DELETE FROM USER WHERE USER ='유저ID';

권한 삭제(사용자 남기기) 및 권한 확인

사용자는 남기고 권한 삭제를 진행하는 경우입니다.

권한을 부여하는데 GRANT TO 를 사용하였다면 권한을 제거하기 위해서는 REVOKE FROM을 사용합니다.

REVOKE ALL ON DB명.테이블명 FROM 사용자아이디;

## 사용자의 모든권한 삭제 ##
REVOKE ALL ON *.* FROM 사용자아이디;

show grants for 사용자아이디@localhost;
a white seal with blue text

Similar Posts