본문 바로가기
MYSQL

MySQL DB/사용자 생성 및 사용자 권한 설정

by 융디's 2024. 5. 4.
728x90
MySQL 데이터 베이스/사용자 생성 및 사용자 권한
🧩

MySQL 데이터 베이스/사용자 생성 및 사용자 권한

@2024.04.30

Database 생성

  • IF NOT EXISTS 옵션
    • 데이터 베이스가 이미 존재하는 경우 새로운 데이터 베이스를 생성하지 않는다.
  • CHARACTER SET와 COLLATE 옵션
    • 데이터베이스의 문자 집합과 데이터의 정렬 순서를 설정
CREATE DATABASE [데이터베이스 명];

-- UTF-8 문자 집합 사용 
-- 유니코드 케이스 인식 정렬
-- (대소문자 구분하지 않고 비교하는 정렬 방식)
CREATE DATABASE 
IF NOT EXISTS my_database 
CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

사용자 생성

-- 외부 접속용
CREATE USER 'id'@'%' IDENTIFIED BY 'password'

-- 로컬 접속용
CREATE USER 'id'@'localhost' IDENTIFIED BY 'password'
  • 예시
-- 외부 접속용
CREATE USER 'yoonD'@'%' IDENTIFIED BY '1234'

-- 로컬 접속용
CREATE USER 'yoonD'@'localhost' IDENTIFIED BY '1234'

권한 부여

GRANT ALL PRIVILEGES ON hr.* TO 'yoonD'@'%';
GRANT ALL PRIVILEGES ON hr.* TO 'yoonD'@'localhost';
  • hr 데이터 베이스에 대한 모든 권한을 부여하며, 외부 및 로컬 접속 모두 허용

권한 적용

  • 모든 권한에 대한 변경 사항을 적용하는 명령어
  • MySQL의 권한 변경 사항을 즉시 적용시킨다.
FLUSH PRIVILEGES;

권한 삭제

  • 사용자가 데이터베이스, 테이블 또는 다른 시스템 자원에 대해 가진 권한을 제거하는 것
  • 특정 데이터베이스나 테이블에 대한 사용자 권한을 제거하려면 REVOKE 문 사용
-- hr 데이터베이스의 모든 권한 제거 
REVOKE ALL PRIVILEGES ON hr.* FROM 'yoonD'@'%';
-- hr 데이터베이스의 테이블에 대한 INSERT, UPDATE 권한 제거 
REVOKE INSERT, UPDATE ON hr.* FROM 'yoonD'@'%';
  • 모든 권한을 제거하고 해당 사용자를 시스템에서 완전히 삭제하기
-- 모든 데이터베이스에 대한 권한을 제거
REVOKE ALL PRIVILEGES ON *.* FROM 'yoonD'@'%';
-- 모든 데이터베이스 권한을 부여하는 권한 제거
REVOKE GRANT OPTION ON *.* FROM 'yoonD'@'%';
-- 사용자 삭제
DROP USER 'yoonD'@'%';
-- 권한 테이블 새로 고침
FLUSH PRIVILEGES;

사용자 조회 및 삭제

사용자 조회

SELECT user, host FROM mysql.user WHERE user = 'yoonD';

특정 사용자 삭제

DROP USER 'yoonD'@'%';
DROP USER 'yoonD'@'localhost';

728x90

'MYSQL' 카테고리의 다른 글

[내장 함수] 숫자형 함수  (0) 2024.05.05
[내장 함수] 문자형 함수  (0) 2024.05.05
SELECT절  (0) 2024.05.05
Docker을 이용해 MYSQL 설치  (0) 2024.05.04
데이터베이스  (0) 2024.05.03