반응형
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 스크립트로 만들어드릴 수 있습니다.
반응형
'MariaDB' 카테고리의 다른 글
| mariadb datetime를 yyyy-mm-dd mi:ss 로 문장열로 변경하는 SQL (0) | 2025.07.03 |
|---|---|
| MariaDB에서 문자열 합치기 방법 (0) | 2025.06.24 |
| java, spring, ibatis, mariadb 환경에서 Insert하고 Pk 가져오는 방법 (1) | 2025.06.04 |
| MariaDB의 View 설명 (0) | 2025.06.02 |