[MySQL] 사용자 및 원격접속 권한 관리

--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;
위로 스크롤