본문 바로가기

MariaDB

mariadb 사용자 조회, 신규 등록 sql 알려주세요

반응형

MariaDB에서 사용자 조회 / 생성 / 권한 부여 / 비밀번호 변경 / 삭제에 사용하는 기본 SQL을 정리하면 아래와 같습니다.

1. 사용자 조회

전체 사용자 목록:

SELECT User, Host
FROM mysql.user;

또는:

SELECT User, Host, plugin
FROM mysql.user;

특정 사용자 조회:

SELECT User, Host
FROM mysql.user
WHERE User = '사용자명';

현재 접속한 계정 확인:

SELECT USER(), CURRENT_USER();

2. 사용자 신규 등록

가장 기본적인 형태입니다.

CREATE USER 'appuser'@'localhost'
IDENTIFIED BY '비밀번호';

예:

CREATE USER 'eeumit'@'localhost'
IDENTIFIED BY 'Eemit@1234';

원격 접속까지 허용하려면:

CREATE USER 'eeumit'@'%'
IDENTIFIED BY 'Eemit@1234';

특정 서버에서만 접속하도록 하는 것이 보안상 더 좋습니다.

CREATE USER 'eeumit'@'192.168.123.%'
IDENTIFIED BY 'Eemit@1234';

3. 데이터베이스 생성

예를 들어 eeumit 데이터베이스를 만든다면:

CREATE DATABASE eeumit
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;

4. 사용자에게 DB 권한 부여

해당 DB의 모든 권한:

GRANT ALL PRIVILEGES
ON eeumit.*
TO 'eeumit'@'localhost';

원격 사용자라면:

GRANT ALL PRIVILEGES
ON eeumit.*
TO 'eeumit'@'%';

특정 IP 대역:

GRANT ALL PRIVILEGES
ON eeumit.*
TO 'eeumit'@'192.168.123.%';

권한 적용:

FLUSH PRIVILEGES;

CREATE USER와 GRANT를 사용한 경우 최신 MariaDB에서는 일반적으로 FLUSH PRIVILEGES가 필수는 아니지만, 명시적으로 실행해도 됩니다.


5. 사용자에게 부여된 권한 조회

SHOW GRANTS FOR 'eeumit'@'localhost';

원격 계정:

SHOW GRANTS FOR 'eeumit'@'%';

6. 비밀번호 변경

ALTER USER 'eeumit'@'localhost'
IDENTIFIED BY '새로운비밀번호';

예:

ALTER USER 'eeumit'@'localhost'
IDENTIFIED BY 'Eemit@2026!';

7. 사용자 삭제

DROP USER 'eeumit'@'localhost';

원격 계정:

DROP USER 'eeumit'@'%';

8. 권한 회수

DB 전체 권한 회수:

REVOKE ALL PRIVILEGES
ON eeumit.*
FROM 'eeumit'@'localhost';

특정 권한만 회수:

REVOKE DELETE
ON eeumit.*
FROM 'eeumit'@'localhost';

실무에서 바로 사용할 예

예를 들어 MariaDB 서버에 eeumit 애플리케이션 계정을 만들고 eeumit DB만 사용하게 하려면:

-- DB 생성
CREATE DATABASE eeumit
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;

-- 사용자 생성
CREATE USER 'eeumit'@'localhost'
IDENTIFIED BY '강력한비밀번호';

-- DB 권한 부여
GRANT ALL PRIVILEGES
ON eeumit.*
TO 'eeumit'@'localhost';

-- 권한 확인
SHOW GRANTS FOR 'eeumit'@'localhost';

개발 서버에서 원격 접속이 필요한 경우

현재 사용하시는 것처럼 개발 PC와 별도의 서버에서 MariaDB를 사용하는 환경이라면:

CREATE USER 'eeumit'@'192.168.123.%'
IDENTIFIED BY '강력한비밀번호';

GRANT ALL PRIVILEGES
ON eeumit.*
TO 'eeumit'@'192.168.123.%';

SHOW GRANTS FOR 'eeumit'@'192.168.123.%';

중요: 'localhost', '%', '192.168.123.%'는 서로 다른 MariaDB 계정입니다. 예를 들어 'eeumit'@'localhost'를 만들었다고 해서 'eeumit'@'%'로 원격 접속할 수 있는 것은 아닙니다.

원하시면 제가 이어서 MariaDB 10.x/11.x 기준으로 사용자 조회 → DB 생성 → 사용자 생성 → 권한 설정 → 원격접속 설정 → 테스트까지 한 번에 실행할 수 있는 SQL 스크립트로 만들어드릴 수 있습니다.

반응형