2015-05-15 23 views
5

Bunu anlamıyorum. Veritabanım var, my_database ve bir tablo, tablename. Veritabanına yalnızca okuma erişimi olan bir kullanıcı ken var. Bu kullanıcı zaten bir şifre ile kuruldu ve kullanıcılar bu kullanıcı adını uzaktan kullanıyor. tablename'da bazı izinler vermek istiyorum.Bazı hibe komutlarında neden 'zorunlu' belirtiliyor?

mysql> grant SELECT, INSERT, UPDATE, DELETE on my_database.tablename to 'ken'@'%'; 
Query OK, 0 rows affected (0.00 sec) 

mysql> flush privileges; 
Query OK, 0 rows affected (0.00 sec) 

Ama bunu yapar:

Bu işe yaramazsa

mysql> grant SELECT, INSERT, UPDATE, DELETE on my_database.tablename to 'ken'@'%' identified by password '<existing password hash>'; 
Query OK, 0 rows affected (0.00 sec) 

mysql> flush privileges; 
Query OK, 0 rows affected (0.00 sec) 

Neden? Zaten bir kullanıcısa identified by bölümünün isteğe bağlı olduğunu mu düşündüm?

+0

Sadece meraktan dolayı: Neden "read_only" adında bir kullanıcı için "INSERT", "UPDATE" ve "DELETE" yapma becerisi kazandıracak kadar kafa karıştırıcı bir şey yapardınız (sadece veri ("SELECT") veriyi okumak için izin verilir? Bu bana gerçekten kötü düşünülmüş bir fikir gibi görünüyor –

+0

Bu gerçek kullanıcı adı değil çünkü. –

+0

Hmm .. Tamam. Ben "Ben bir kullanıcı var" ile giderdi Joe, kim ... ". :-) –

cevap

0

Büyük olasılıkla bir MySQL çoğaltma sorunu.

0

GRANT ifadesini, kullanıcının yalnızca bu belirli kimlik doğrulama yöntemiyle oturum açtıysa kısıtlamasını sağlayabilirsiniz (burada: parola).

Ayrıntılar için this sayfada auth_option alanında arayın ... Bu CREATE USER deyimi ile en az olduğu ve bunu burada benzer olması gerektiğini düşünüyorum.

İlgili konular