Video: Keamanan Database 2024
Saat MySQL terinstal, secara otomatis membuat database bernama mysql . Semua informasi yang digunakan untuk melindungi data Anda disimpan dalam database ini, termasuk nama akun, nama host, kata sandi, dan hak istimewa.
Keistimewaan disimpan dalam kolom. Format dari setiap nama kolom adalah privilege _priv, di mana privilege adalah hak istimewa akun tertentu. Misalnya, kolom yang berisi hak istimewa ALTER dinamai alter_priv. Nilai di setiap kolom privilege adalah Y atau N, artinya ya atau tidak.
Jadi, misalnya, di tabel pengguna, akan ada baris untuk sebuah akun dan kolom untuk alter_priv. Jika kolom akun untuk alter_priv berisi Y, akun tersebut dapat digunakan untuk mengeksekusi pernyataan ALTER. Jika alter_priv berisi N, akun tidak memiliki hak istimewa untuk mengeksekusi pernyataan ALTER.
Database mysql berisi tabel berikut yang menyimpan hak istimewa:
-
tabel pengguna : Tabel ini menyimpan hak istimewa yang berlaku untuk semua basis data dan tabel. Ini berisi baris untuk setiap akun yang valid yang menyertakan nama pengguna kolom, nama host, dan kata sandi. Server MySQL menolak koneksi untuk akun yang tidak ada dalam tabel ini.
-
db tabel: Tabel ini menyimpan hak istimewa yang berlaku untuk database tertentu. Ini berisi baris untuk database, yang memberi hak istimewa untuk nama akun dan nama host. Akun harus ada di tabel pengguna agar hak istimewa diberikan. Hak istimewa yang diberikan dalam tabel pengguna mengesampingkan hak istimewa dalam tabel ini.
Misalnya, jika tabel pengguna memiliki baris untuk perancang akun yang memberi hak INSERT, perancang dapat memasukkan semua basis data. Jika baris di tabel db menunjukkan N untuk INSERT untuk akun perancang di database PetCatalog, tabel pengguna akan mengabaikannya, dan perancang dapat memasukkan database PetCatalog.
-
host tabel: Tabel ini mengontrol akses ke database, tergantung pada host. Tabel host bekerja dengan tabel db. Jika sebuah baris di tabel db memiliki field kosong untuk host, MySQL memeriksa tabel host untuk melihat apakah db memiliki baris di sana. Dengan cara ini, Anda dapat mengizinkan akses ke db dari beberapa host tapi tidak dari orang lain.
Misalnya, Anda memiliki dua database: db1 dan db2. Database db1 memiliki informasi sensitif, jadi Anda hanya menginginkan orang tertentu melihatnya. Database db2 memiliki informasi yang Anda ingin semua orang lihat. Jika Anda memiliki baris di tabel db untuk db1 dengan bidang host kosong, Anda dapat memiliki dua baris untuk db1 di tabel host.
Satu baris dapat memberi semua hak istimewa kepada pengguna yang terhubung dari host tertentu, sedangkan baris lain dapat menolak hak istimewa bagi pengguna yang terhubung dari host lain.
-
tables_priv tabel: Tabel ini menyimpan hak istimewa yang berlaku untuk tabel tertentu.
-
columns_priv tabel: Tabel ini menyimpan hak istimewa yang berlaku untuk kolom tertentu.
Anda dapat melihat dan mengubah tabel di mysql secara langsung jika Anda menggunakan akun yang memiliki hak istimewa yang diperlukan. Anda bisa menggunakan query SQL seperti SELECT, INSERT, dan UPDATE. Jika Anda mengakses MySQL melalui atasan, klien, atau perusahaan hosting web Anda, Anda mungkin tidak memiliki akun dengan hak istimewa yang diperlukan.