Önceden oluşturulmuş MySQL kullanıcısı için ayrıcalıkları nasıl değiştiririm?


69

Ayrıcalıklara sahip yeni bir kullanıcı nasıl oluşturulur, ancak önceden oluşturulmuş kullanıcılar için ayrıcalıkları değiştirmenin doğru yolu nedir?

Bir DB denetimi yapıyoruz ve bazı kullanıcılar ihtiyaç duyuldukça daha fazla erişime sahip. Ayrıca bu MySQL kullanıcılarının çoğunun şifrelerini bilmiyorum, bu yüzden onları silmek ve yenilerini oluşturmak istemiyorum.

Yanıtlar:


107

Kullanıcıları listelemek için:

select user,host from mysql.user;

Ayrıcalıkları göstermek için:

show grants for 'user'@'host';

Ayrıcalıkları değiştirmek için önce iptal edin. Gibi:

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

Ardından istediğiniz gibi uygun yetkileri verin:

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

Son olarak, yıkayın:

flush privileges;

MySQL belgeleri mükemmel:

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


3
İptal edilmeksizin, dublicates imtiyazları olacak;
Sergey

7
mysql belgeleri okunamayacak kadar yakın, bu cevap çok daha iyi
Timo Huovinen

Sanırım (üzerindeki tüm ayrıcalıkları iptal et . '' User '@' host ';)' ın (hepsini iptal et . 'User' @ 'host' 'dan;) Teşekkürler,
Nicholas

1
bu cevap açık yanlıştır "yıkama ayrıcalıkları" hibe ile belirlenen ayrıcalıklara uygulanmaz. Yukarıdaki işlem, kullanıcının iptal etme ve hibe sorguları çalıştırıldığı an arasında hiçbir imtiyazın bulunmamasına ve ek olarak herhangi bir sebep olmadan hibe önbelleğinin yıkanmasıyla sonuçlanır. Hibeleri kullanarak ve sunucu sorgular arasında çökmezse veya durmazsa.
skullnobrains,
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.