Saya telah menemukan ikhtisar yang terkandung dalam artikel ini bahkan lebih bermanfaat daripada dokumentasi MySQL yang sebenarnya untuk menjelaskan gambaran besar tentang bagaimana hak istimewa MySQL diberikan atau ditolak.
Inti dari artikel ikhtisar adalah bahwa hak istimewa dikendalikan oleh serangkaian tabel izin yang semakin halus di mysql
database:mysql.user
, mysql.db
, mysql.host
, mysql.tables_priv
, mysql.columns_priv
, mysql.procs_priv
. Aturan umumnya adalah bahwa nilai "Y" untuk hak istimewa dalam tabel yang lebih berbutir halus mengesampingkan nilai "N" dalam tabel yang lebih berbutir kasar. Jadi strategi yang disarankan adalah memulai dengan menolak sebagian besar hak istimewa di user
table (yang memberikan kontrol paling kasar), lalu buat hanya penggantian spesifik yang Anda inginkan di tabel yang lebih halus.
Secara khusus, ada hak istimewa yang disebut SHOW_DATABASES
yang ditentukan oleh Show_db_priv
kolom di mysql.user
meja; Anda ingin mengatur ini ke "N" untuk pengguna yang bersangkutan (dan seperti yang dijelaskan di atas, Anda mungkin ingin mengatur sebagian besar izin lain di tabel pengguna ke "N" juga) dan kemudian hanya memberikan hak istimewa yang pengguna sebenarnya perlu di mysql.db
atau mysql.tables_priv
tabel atau apa pun yang sesuai untuk kasus khusus Anda.