“HİBE KULLANIMI” kaldırılamıyor


15

Bazı şeyleri test ediyordum ve şunları ekledim:

grant usage on statistics.* to cptnotsoawesome@localhost identified by 'password';

şimdi yaptığımda

show grants for cptnotsoawesome@localhost;

Bunlardan birinin olduğunu görebiliyorum:

Grants for cptnotsoawesome@localhost
----------------------------------
GRANT USAGE ON *.* TO 'cptnotsoawesome'@'localhost' IDENTIFIED BY PASSWORD 'somePEW-PEWstring' 

Şimdi bir güvenlik tehlikesi olduğunu düşünüyorum olarak kaldırmak istiyorum, bu yüzden:

REVOKE USAGE ON *.* FROM 'cptnotsoawesome'@'localhost' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;

Ancak hâlâ USAGE'nin hibe listesinde olduğunu gösteriyor.

Grants for cptnotsoawesome@localhost
----------------------------------
GRANT USAGE ON *.* TO 'cptnotsoawesome'@'localhost' IDENTIFIED BY PASSWORD 'somePEW-PEWstring' 

Neden herhangi bir fikir? Neyi yanlış yapıyorum?

Yanıtlar:


20

Başlık altında, yalnızca USAGE olan bir kullanıcı gördüğünüzde, kullanıcının tüm global ayrıcalıkları kapalı olarak mysql.user tablosuna yazıldığını unutmayın.

Başlangıçta, kullanıcının bunu yaptığını belirttiniz:

grant usage on statistics.* to cptnotsoawesome@localhost identified by 'password'; 

mysql.userMD5 şifresi ve tüm global privs olarak ayarlanmış bir satır görmelisiniz N. Ayrıca mysql.db içinde ile bir satır görmelisiniz

  • Kullanıcı = 'cptnotsoawesome'
  • host = 'localhost'
  • db = 'istatistik'
  • 'Y' olarak ayarlanmış tüm DB düzeyi verileri

Onları bu sorgu ile görebilmelisiniz

SELECT * FROM mysql.db
WHERE user='cptnotsoawesome'
AND host='localhost'
AND db='statistics'\G

REVOKE komutunu çalıştırdığınızda, satırı yalnızca kaldırdınız mysql.db. Bu, içindeki satıra dokunmadımysql.user . Böylece, hala mysql giriş ve sadece çalıştırmak için özel olabilir

SHOW GLOBAL VARIABLES;
SHOW GLOBAL STATUS;

Denilen bir test veritabanı testveya ilk 5 karakteri olan bir veritabanı varsa test_, (SELECT * FROM mysql.db WHERE db LIKE 'test%'; ), sadece USAGE olan kullanıcının test veritabanları üzerinde tam hakları olabilir. Bu konuda ServerFault Eylül 2011 yazdım .

Satırı mysql.user öğesinden kaldırmak isterseniz,

DROP USER cptnotsoawesome@localhost;

veya

DELETE FROM mysql.user WHERE
WHERE user='cptnotsoawesome'
AND host='localhost';
FLUSH PRIVILEGES;

9

USAGE , kullanıcının herhangi bir yetkisine sahip olmadığı anlamına gelir.

You have to use 'DROP USER'. 

drop user cptnotsoawesome@localhost;

Kullanıcıyı bırakmadan USAGE işlevini fiilen iptal edemezsiniz.USAGE global düzeyde bir ayrıcalıktır.

Bu bağlantıya bir göz atın .


Bu, veritabanına yanlış bir şey yapıyorduysa, güvenlik tehdidi veya bunun gibi bir
şeyse

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.