Bir kullanıcıya ilk kez ayrıcalıklar verdiğimde neden "HİBE KULLANIMI" oluşturuldu?


104

DBMS'nin yönetici tarafında yeniyim ve bunu fark ettiğimde bu gece (MySQL kullanarak) yeni bir veritabanı kuruyordum. Bir kullanıcıya ilk kez bir ayrıcalık verdikten sonra, aşağıdaki gibi görünen başka bir hibe oluşturulur

GRANT USAGE on *.* TO user IDENTIFIED BY PASSWORD password

Dokümantasyon, USAGEayrıcalığın "ayrıcalık yok" anlamına geldiğini söylüyor, bu yüzden hiyerarşik olarak hiyerarşik olarak çalışma hibe olduğunu ve belki de bir kullanıcının tüm veritabanları için bir tür ayrıcalığa sahip olması gerektiğini anlıyorum, bu yüzden bu bir hepsini yakalamak olarak mı hizmet ediyor?

Ayrıca IDENTIFIED BY, oluşturduğum hibe sahip olmadığında bu satırda neden bir cümle olduğunu anlamıyorum (çoğunlukla IDENTIFIED BYcümlenin hangi amaca hizmet ettiğini anlamadığım için ).

Düzenleme: Bunu orijinal olarak belirtmediğim için özür dilerim, hibeler

GRANT ALL PRIVILEGES ON database.* TO admin_user
GRANT SELECT, INSERT, UPDATE, DELETE ON database.* TO user

lütfen bize çalıştırdığınız hibeyi söyler misiniz
Pentium10

Yanıtlar:


147

Dediğiniz gibi USAGE, MySQL'de "ayrıcalık yok" ile eş anlamlıdır. Gönderen MySQL Reference Manual :

KULLANIM ayrıcalık belirteci "ayrıcalık yok" anlamına gelir. Mevcut hesap ayrıcalıklarını etkilemeden kaynak sınırları veya SSL özellikleri gibi hesap özniteliklerini değiştirmek için GRANT ile global düzeyde kullanılır.

USAGEMySQL'e bir hesabın o hesaba gerçek ayrıcalıklar vermeden var olduğunu söylemenin bir yoludur. Dolayısıyla, sadece MySQL sunucusunu kullanma iznine sahiptirler USAGE. `mysql`.`user`Tablodaki ayrıcalıklar ayarlanmadan bir satıra karşılık gelir .

IDENTIFIED BYTümcesi bir şifre söz konusu kullanıcı için ayarlanmış olduğunu gösterir. Bir kullanıcının söylediği kişi olduğunu nasıl anlarız? Onlar tanımlamak hesapları için doğru parolayı göndererek kendilerini.

Bir kullanıcının parolası, belirli bir veritabanına veya tabloya bağlı olmayan genel düzeydeki hesap özniteliklerinden biridir. Aynı zamanda `mysql`.`user`masada yaşıyor . Kullanıcının başka ayrıcalıkları yoksa ON *.*, kendilerine verilir USAGE ON *.*ve şifre karması burada görüntülenir. Bu genellikle bir CREATE USERifadenin yan etkisidir . Bir kullanıcı bu şekilde oluşturulduğunda, başlangıçta ayrıcalıkları yoktur, bu yüzden yalnızca verilir USAGE.


10
Sanırım kimlik doğrulamalarına izin verildiği için. Yanlış bir kullanıcı veya / ve şifre ile denerseniz, kimlik doğrulayamazsınız. KULLANIM ayrıcalığına sahip bir kullanıcı, '1 + 1'i seç' ve 'işlem listesini göster' gibi belirli SQL komutlarını çalıştırabilir.
Mircea Vutcovici

11

GRANT USAGE on *.* TOBurada anlamını bulmaya çalışıyordum . Aşağıdaki komutla ( ) kullanıcıyı oluşturduğunuzdaGRANT USAGE on *.* TO user IDENTIFIED BY PASSWORD password bunun verileceğini netleştirebilirim :CREATE

CREATE USER 'user'@'localhost' IDENTIFIED BY 'password'; 

Ne zaman vermek ile ayrıcalık GRANT, yeni ayrıcalık ler bunun üstüne eklenecektir.


3

Ek olarak, cümleci kullanılmadığında mysql parolaları IDENTIFIED BYboş değerler olabilir, boş değilse şifrelenebilir. Ancak evet USAGE, basit kaynak sınırlayıcıları vererek bir hesabı değiştirmek için kullanılır, örneğin MAX_QUERIES_PER_HOURbu, yine, GRANT USAGE(ayrıcalıklar eklenmemiş) ile birlikte WITH yan tümcesi kullanılarak belirtilebilir veya GRANT ALLayrıca GRANT USAGEglobal düzeyde, veritabanı düzeyinde de belirtebilirsiniz , masa seviyesi, vb ....

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.