CREATE DATABASE başlamadan önce kullanıcı haklarını kontrol edin

3 Cevap php

Bazı Shell bazı yoktur, script DATABASE CREATE izin ve yerine kendi kontrol panelleri kullanmayı gerektirir. Nasıl veritabanı bana aslında herhangi bir veri tabanı oluşturma olmadan verilen kullanıcı / şifre ile bu sorguyu çalıştırmak izin edip kontrol edebilirim?

Ben yeterli haklara sahip değilsiniz, ben sadece tamamen UI "veritabanı oluşturma" düğmesini gizlemek istiyorum çünkü.

PHP ve MySQL kullanıyorum. Teşekkürler.

3 Cevap

Sen ile haklarını elde edebilirsiniz:

SHOW GRANTS FOR CURRENT_USER;

Sadece bir test komut dosyası oluşturmak

<?php
mysql_connect(...);
$result = mysql_query('CREATE DATABASE testDB');
if (!$result)
{
    //Failed
}
else
{
    mysql_query('DROP DATABASE testDB');
}
mysql_close();
?>

Siz IF bir değişken tanımlayabiliriz sonra bir yapılandırma dosyası olduğunu yazmak.

Vartec said, SHOW GRANTS FOR CURRENT_USER gitmek için yoludur. Ben sadece tam haklara sahip değilsiniz zaman bu ifadenin çıkışını göstermek için bu cevabı ekliyorum:

GRANT USAGE ON *.* TO 'myusername'@'%' IDENTIFIED BY PASSWORD '*8D4A4D198E31D6EA9D7997F7B29A2BCA254178B6'
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, CREATE ROUTINE ON `mydb1`.* TO 'myusername'@'%'
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, CREATE ROUTINE ON `mydb2`.* TO 'myusername'@'%'
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, CREATE ROUTINE ON `mydb3`.* TO 'myusername'@'%'