-
MySQL8 계정 삭제 / 추가 / 권한부여 / 권한삭제 / 비밀번호 변경DB/MySQL 2023. 12. 2. 00:01
계정 삭제
보고 배운 사이트 : infotake.tistory
-
특정 IP
대역 기준 삭제 drop mysql.user '계정명'@'192.168.%'; -
모든 IP
대역 기준 삭제 drop mysql.user '계정명'@'%';
실행 확인
drop user 'zhyun'@'%';
테스트 해보니 쿼리에서
host
( 허용ip대역 )를 적어주지 않으면 자동으로 host를 전역%
으로 인식해서 실행한다.그렇기 때문에, select 쿼리를 사용해서 host 정보 확인 후 drop문 작성을 해주어야 할 것 같다.
계정 추가
보고 배운 사이트 : infotake.tistory
-
특정 IP
대역 기준 생성 create user '계정명'@'192.168.%' identified by '패스워드'; -
모든 IP
대역 기준 생성 create user '계정명'@'%' identified by '패스워드';
실행 확인
create user 'zh'@'%' identified by 'rootrootgroot';
계정 권한 부여
GRANT [type of permission] ON [database name].[table name] TO '[username]'@'[hostname]';
사용 예시
GRANT ALL PRIVILEGES ON *.* TO 'aaa'@'localhost';
localhost 에서 접속하는 aaa 계정에 대해 모든 권한 부여
부여할 수 있는 타입 조사 [type of permission]
대표적인 8가지 권한 소개
-
SELECT
사용자가 테이블의 데이터를 조회할 수 있는 권한을 제공 SELECT 문을 사용하여 데이터를 읽을 수 있다. -
INSERT
사용자가 테이블에 새로운 행을 추가할 수 있는 권한을 제공 INSERT 문을 사용하여 데이터를 추가할 수 있게 된다. -
UPDATE
사용자가 테이블의 기존 행을 수정할 수 있는 권한을 제공. UPDATE 문을 사용하여 데이터를 수정할 수 있게 된다. -
DELETE
사용자가 테이블의 행을 삭제할 수 있는 권한을 제공. DELETE 문을 사용하여 데이터를 삭제할 수 있게 된다. -
CREATE
사용자가 새로운 테이블 또는 데이터베이스를 생성할 수 있는 권한을 제공. -
DROP
사용자가 테이블 또는 데이터베이스를 삭제할 수 있는 권한을 제공. -
GRANT OPTION
사용자가 다른 사용자에게 권한을 부여하거나 취소할 수 있는 권한을 제공. -
ALL PRIVILEGES
사용자에게 모든 권한을 부여. 이는 위의 모든 권한을 포함하며, 데이터베이스에서 가능한 모든 작업을 수행할 수 있게 한다.
실행 확인
GRANT ALL PRIVILEGES ON *.* TO 'zh'@'%'; flush privileges; // 사용자 계정 변경사항 즉각 반영
GRANT ALL PRIVILEGES ON *.* TO 'zhyun'@'%'; flush privileges;
위의 쿼리를 이어서 실행 시켰더니 에러가 났다.
ERROR 1410 (42000): You are not allowed to create a user with GRANT
구글링으로 아래와 같이 수정하여 쿼리를 실행했더니 성공!
GRANT ALL PRIVILEGES ON *.* TO 'zhyun'@'%' WITH GRANT OPTION; flush privileges;
그리고 루트권한 과 같은 모든 권한을 갖는 계정은 root 하나로 족하다는 것을 배울 수 있었다.
그래서 이런식으로 여러 계정에 모든 권한 부여하는 것에 대해 검색해보면 많은 사람들이 이 행동을 제지시키는 것을 볼 수 있었다.
개인 내부 프로젝트시에는 상관이 없지만 실수라던지, 나도 모르는사이에 모든 권한을 가진 계정이 유출되면 내 DB가 남의 DB가 되어버리는 불쌍사나, 내 DB에 있던 정보들(개인정보 등 관리할 수 있는 모든 정보/데이터)을 유출 당할 수 있기 때문이다.
계정 권한 삭제
REVOKE 권한_유형 ON 데이터베이스.* FROM '계정'@'호스트';
실행 확인
REVOKE ALL PRIVILEGES ON *.* FROM 'minicampus_user'@'%';
계정 비밀번호 변경
ALTER USER '유저명'@'허용ip대역' IDENTIFIED BY '변경할비밀번호';
실행 확인
ALTER USER 'zh'@'%' IDENTIFIED BY 'rootrootgroot';
'DB > MySQL' 카테고리의 다른 글
MariaDB 설치 및 프로젝트 요구 계정 / db 추가 (0) 2023.12.03 Windows Mysql Cli 접속하기 (0) 2023.12.02 MySQL DB 생성, USER 생성 및 권한 입력 쿼리 (0) 2023.11.30 프로그래머스 : 가격대 별 상품 개수 구하기 (0) 2023.11.26 프로그래머스: 5월 식품들의 총매출 조회하기 (0) 2023.11.26 -