이미 생성 된 MySQL 사용자의 권한을 어떻게 변경합니까?


69

권한이있는 새 사용자를 작성하는 방법을 알고 있지만 이미 작성된 사용자의 권한을 변경하는 올바른 방법은 무엇입니까?

우리는 DB 감사를 실행하고 있으며 일부 사용자는 더 많은 액세스 권한이 필요합니다. 또한 대부분의 MySQL 사용자의 비밀번호를 모르므로 삭제하고 새 비밀번호를 만들고 싶지 않습니다.

답변:


107

사용자를 나열하려면

select user,host from mysql.user;

권한을 표시하려면

show grants for 'user'@'host';

권한을 변경하려면 먼저 취소하십시오. 같은 :

revoke all privileges on *.* from 'user'@'host';

그런 다음 원하는대로 적절한 권한을 부여하십시오.

grant SELECT,INSERT,UPDATE,DELETE ON `db`.* TO 'user'@'host';

마지막으로 플러시 :

flush privileges;

MySQL 문서는 훌륭합니다.

https://dev.mysql.com/doc/refman/8.0/en/access-control.html


3
취소하지 않으면 권한을 복제 할 수 있습니다.
Sergey

7
mysql 문서는 거의 읽을 수 없다.이 대답은 훨씬 낫다
Timo Huovinen

나는 (모든 권한을 취소 생각합니다 . '사용자'@ '호스트'에서)가 있어야한다 (모두에 취소 . '사용자'@ '호스트'에서) 감사합니다,
니콜라스

1
이 답변은 명백한 잘못입니다. "플러시 권한"은 grant로 설정된 권한에는 적용되지 않습니다. 위의 프로세스로 인해 사용자는 취소와 그랜트 쿼리가 실행되는 순간에 권한이 전혀 없으며 추가로 아무런 이유없이 그랜트 캐시를 플러시합니다. __ 대신 mysql.user 테이블에 대해 일반 쿼리를 수행하면 작동합니다 권한 부여 사용 및 서버가 쿼리간에 충돌 또는 중지되지 않는 경우
skullnobrains
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.