본문 바로가기
쿤즈 Server/MariaDB | Mysql

[MariaDB/MySQL] 사용자 권한 설정 (grant) & HeidiSQL 사용

by :)Koon 2021. 2. 1.

어떤 프로젝트를 진행을 위해서 데이터베이스(DB)를 사용하게 됩니다. 이때 Command Line을 이용해서 진행을 할 수도 있지만 여러가지 비주얼한 툴을 이용하기도 합니다. 저의 경우는 윈도우에서는 HeidiSQL이라는 오픈소스 툴을 이용합니다. 이때 접속과정에서 권한때문에 에러가 발생하는 경우가 있습니다.

 

오늘 포스팅에서는 권한설정으로 인해서 발생하는 에러를 확인하고 수정하는 방법을 알아보겠습니다.


데이터베이스(DB) 접속 툴. HeidiSQL

데이터베이스는 여러가지 종류가 있습니다. 무료 오픈소스 데이터베이스도 있고 사용 데이터베이스도 있습니다. 대표적으로는 Oracle, MySQL, MariaDB, PostgreSQL, SQLite 등이 있습니다. 물론 모두 관계형 데이터베이스 입니다.

 

모두 Command Line으로도 충분히 사용할 수 있지만, 윈도우의 장점은 비주얼한 화면으로 편리하게 작업이 가능하는 것이죠. 그중에서도 저는 무료 오픈소스인 HeidiSQL을 사용합니다.

 

출처 : HeidiSQL 홈페이지

HeidiSQL은 MariaDB, MySQL, MS-SQL, PostgreSQL, SQLite에서 모두 사용이 가능한 툴입니다. 직접 SQL 쿼리를 작성하지 않아도 삽입, 수정, 삭제, 출력이 가능하기 때문에 초보자들도 쉽게 사용이 가능합니다. 물론 SQL을 직접 만들수 있어야 더욱 편하게 사용 할 수 있습니다.


접속시 발생하는 오류

HeidiSQL을 이용해서 네트워크 유형, Library, 호스트명 / IP, 사용자ID, 암호, 포트, 데이터베이스이름을 입력하고 열기를 누르면 쉽게 접속이 가능합니다. 이때 다음과 같은 오류가 발생되는 경우가 있습니다.

Access denied for user 'userid'@'hostip'
(using password: YES)

이 경우에는 보통 접속하는 데이터베이스에서 권한 설정이 되지 않아서 접속이 denied 된 것입니다. 이 경우에는 서버에 집적 접속하여 권한설정을 해줘야 합니다. 권한 설정은 다음과 같습니다.


MySQL / MariaDB 접속 권한 설정

MySQL과 MariaDB 는 형태가 동일하기 때문에 동일한 SQL 구문의 사용이 가능합니다.

 

권한설정

권한설정 기본 틀은 다음과 같습니다.

grant [설정권한] privileges on '[데이터베이스 이름]'.* to '[접속ID]'@'[접속하는 IP]' identified by '[비밀번호]';

개발할 때에는 모든 권한을 설정하는 것이 편하기 때문에 모든 권한을 줘보도록 하겠습니다.

 

권한 : all

데이터베이스 이름 : TESTDB

접속ID : user

접속IP : 10.10.10.10

비밀번호 : 'password'

 

위 설정대로 권한을 준다면 다음과 같습니다.

grant all privileges on 'TESTDB'.* to 'user'@'10.10.10.10' identified by 'password';

그리고 설정된 권한을 적용시켜 주기 위해서 아래와 같이 입력합니다.

flush privileges;

이제 다시 HeidiSQL로 돌아와서 접속하시면 정상적으로 접속이 되는걸 확인 할 수 있습니다.

추가적으로 설정 권한들은 mariaDB Grant option 들에서 확인하실 수 있습니다.

MariaDB : https://mariadb.com/kb/en/grant/

이번 포스팅에서는 윈도우에서 사용하는 HeidiSQL을 이용하는 방법과 툴을 이용하면 데이터베이스도 쉽게 접근해서 사용하는 방법중 grant라는 권한 옵션에 대해서 알아보았습니다. 기본적으로 Command Line을 이용해서 개발하는 방법도 필요하니 두 가지 방법 모두 익혀두시면 좋을것 같습니다.

댓글