--1. 사용자 조회
SELECT user, host FROM mysql.user;
--2. 사용자 삭제
DROP mysql.user '계정명'@'192.168.%';
DROP mysql.user '계정명'@'%';
--3. root 패스워드 변경
--■MySQL 8.0 (root 로컬 및 원격 패스워드 변경)
ALTER user 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'passwd88';
ALTER user 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'passwd88';
--원격 사용자를 생성하고 권한 부여
CREATE USER 'root'@'%' IDENTIFIED BY 'passwd88';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
FLUSH PRIVILEGES;
--■MariaDB 10.4 이하
mysqladmin -u root -p password 'passwd88'
--4. 원격 사용자 생성
--■MariaDB 10.4, MySQL 8.0 이상
--OS 계정 root만 MySQL의 root 에 접속할 권한이 있다. 아래 쿼리는 원격 사용자를 생성하고 권한을 부여한다.
CREATE USER 'root'@'%' identified by 'passwd88';
GRANT ALL PRIVILEGES ON *.* to 'root'@'%';
CREATE USER 'root'@'127.0.0.1' identified by 'passwd88';
GRANT ALL PRIVILEGES ON *.* to 'root'@'127.0.0.1';
FLUSH PRIVILEGES;
--5. 원격 접속 권한 확인
SHOW GRANTS FOR 'mysql'@'localhost';
SELECT USER, HOST, File_priv FROM mysql.user;
--6. 원격 접속 권한 제거
REVOKE DELETE ON MODOOS.* FROM testuser;
REVOKE FILE ON *.* FROM 'mysql'@'localhost';
DELETE FROM user WHERE USER='testuser' AND HOST='%';
DELETE FROM user WHERE USER='testuser' AND HOST='10.1.2.51';
--7. 원격 접속 권한 주기 (MySQL 8.x)
CREATE USER gateone@'127.0.0.1' IDENTIFIED BY 'passwd88';
GRANT ALL PRIVILEGES ON MODOOS.* TO gateone@'%';
--8. 원격 접속 권한 주기 (MariaDB 10.x)
GRANT ALL PRIVILEGES ON MODOOS.* TO 'gateone'@'%' IDENTIFIED BY 'passwd88';
GRANT ALL PRIVILEGES ON MODOOS.* TO 'gateone'@'10.1.2.%' IDENTIFIED BY 'passwd88';
--9. root 계정 패스워드 없애기
SET PASSWORD FOR root@localhost=PASSWORD('');
--10. DBNAME DB의 특정 권한만 허용
GRANT SELECT ON DBNAME.* TO 'testuser'@'10.1.1.80' IDENTIFIED BY 'passwd88';
GRANT ALTER,CREATE,DELETE,DROP,INDEX,INSERT,SELECT,UPDATE ON *.* TO 'testuser'@'10.1.2.51' IDENTIFIED BY 'passwd88';
--11. WITH GRANT OPTION : 다른 사용자에게 GRANT 가능
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'passwd88' WITH GRANT OPTION;
--12. 적용
FLUSH PRIVILEGES;