pt-show-grants를 사용하지 않더라도
아래 스크립트를 .sh 로 생성하여 실행하면 비밀번호와 grant 옵션을 얻을 수 있음
#!/bin/bash
HOST=localhost
USER=
PASSWORD=
for i in `mysql -Ns -h$HOST -u$USER -p$PASSWORD -e "select concat('\'',user,'\'@\'',host,'\'') from mysql.user where user not in ('mysql.session','mysql.sys','debian-sys-maint','root','mysql');"`
do
mysql -Ns -h$HOST -u$USER -p$PASSWORD -e 'SHOW CREATE USER '"$i"';' >> users.sql
mysql -Ns -h$HOST -u$USER -p$PASSWORD -e 'SHOW GRANTS FOR '"$i"';' >> users.sql
done
sed -i 's/$/\;/' user_privileges.sql
-- 패스워드 명을 알 경우
ALTER USER '계정명'@'%' IDENTIFIED with mysql_native_password by '비밀번호';
-- 패스워드 명을 모르고 기존 DB의 패스워드를 그대로 복사해서 가져올 경우
ALTER USER '계정명'@'%' IDENTIFIED with mysql_native_password AS 'mysql.user테이블에 있던 비밀번호 그대로';
-- 적용
FLUSH PRIVILEGES;
-- 권한 확인
SHOW GRANTS FOR 계정명;
참고!
MySql5.7 은 계정 생성과 동시에 DB에 권한을 부여 가능
mysql> grant all privileges on DB이름.* to '계정명'@'%' identified by '비밀번호' with grant option;
MySQL 8 부터는 계정 생성과 DB 권한 부여를 각각 실행
mysql> create user '계정명'@'%' identified by '비밀번호' ;
mysql> grant all privileges on DB이름.* to '계정명'@'%' with grant option;
'Database > MySQL, MariaDB' 카테고리의 다른 글
MySQL Binlog > GTID 모드 복제로 변경 (0) | 2023.03.13 |
---|---|
MariaDB 버전에 따른 mysql DB 스키마 관련 오류 ([Error] Query caused different errors on mast (0) | 2023.03.06 |
MySQL Group Replication (0) | 2022.09.17 |
[MY-000068] [Server] unknown option '---'. (0) | 2022.09.13 |
MySQL Group Replication 설정 순서 (0) | 2022.09.04 |