--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;