Banner - Belajar SQL Database bagian 16

Belajar SQL Database Bagian 16 – User dan Hak Akses (Privilege)

Pada seri Belajar SQL Database bagian 15, kita telah mempelajari teknik denormalisasi database, yaitu proses mengatur struktur tabel untuk meningkatkan performa database pada kondisi tertentu.

Selain struktur dan performa, keamanan database juga menjadi hal penting yang perlu diperhatikan. Saat menggunakan MySQL, kita biasanya menggunakan akun root yang memiliki hak akses penuh untuk mengelola database.

Pada seri Belajar SQL Database bagian 16 ini, kita akan belajar cara membuat user dan mengatur hak akses (privilege) sesuai kebutuhan. Dengan demikian, setiap pengguna dapat diberikan akses yang berbeda tanpa harus menggunakan akun root. Mari simak pembahasannya!

Mengenal User dan Privilege pada Database

Sebelum masuk ke praktik, kita perlu memahami terlebih dahulu apa yang dimaksud dengan user dan privilege di MySQL.

User adalah akun yang digunakan untuk mengakses server MySQL. Setiap user memiliki username, password, serta hak akses yang dapat diatur sesuai kebutuhan. Sedangkan privilege adalah izin yang diberikan kepada user untuk melakukan aktivitas tertentu pada database.

Beberapa contoh privilege yang umum digunakan yaitu:

Promo Hosting Murah Rumahweb

  • SELECT untuk melihat data.
  • INSERT untuk menambahkan data.
  • UPDATE untuk mengubah data.
  • DELETE untuk menghapus data.

Sebagai contoh, sebuah website biasanya tidak memerlukan akses penuh seperti akun root. Website hanya membutuhkan akses tertentu pada database agar dapat membaca maupun menyimpan data.

Dengan menggunakan user khusus dan memberikan privilege sesuai kebutuhan, keamanan database dapat lebih terjaga karena aplikasi tidak memiliki akses yang berlebihan.

Mengenal Format User pada MySQL

Di MySQL, sebuah user tidak hanya ditentukan berdasarkan username saja, tetapi juga berdasarkan lokasi atau sumber koneksi yang disebut host.

Format penulisan user pada MySQL adalah:

'username'@'host'

Contohnya:

'adminweb'@'localhost'

Artinya, user adminweb hanya dapat digunakan untuk mengakses MySQL dari server yang sama.

Selain menggunakan localhost, MySQL juga mendukung penggunaan tanda % sebagai host.

Contoh:

'adminweb'@'%'

Artinya, user adminweb dapat melakukan koneksi dari berbagai host.

Pengaturan host ini berguna untuk membatasi sumber koneksi user sehingga akses ke database dapat lebih terkontrol dan aman.

Membuat User Baru di MySQL

Untuk membuat user baru di MySQL, kita perlu masuk terlebih dahulu menggunakan akun yang memiliki hak akses administrator, seperti root.

Jalankan perintah berikut:

mysql -u root -p

Setelah berhasil masuk, buat user baru menggunakan perintah:

CREATE USER 'adminweb'@'localhost'
IDENTIFIED BY 'password123';

Pada contoh di atas, kita membuat user dengan nama adminweb yang hanya dapat digunakan dari server lokal (localhost).

Untuk memastikan user berhasil dibuat, kita dapat melihat daftar user yang tersedia dengan menjalankan query berikut:

SELECT User, Host
FROM mysql.user;

Jika user adminweb sudah muncul pada hasil query, maka proses pembuatan user berhasil dilakukan.

Namun, user tersebut belum dapat mengakses database karena belum memiliki hak akses (privilege). Pada tahap berikutnya, kita akan memberikan privilege sesuai dengan kebutuhan user tersebut.

Memberikan Hak Akses (Privilege) pada User

Setelah membuat user, langkah berikutnya adalah memberikan hak akses sesuai dengan kebutuhan.

Untuk memberikan seluruh akses pada database tertentu, gunakan perintah berikut:

GRANT ALL PRIVILEGES
ON akademik.*
TO 'adminweb'@'localhost';

Perintah tersebut akan memberikan seluruh hak akses kepada user adminweb pada database akademik, seperti membaca, menambahkan, mengubah, hingga menghapus data.

Namun, dalam praktiknya kita tidak selalu perlu memberikan semua akses kepada setiap user. Sebaiknya, hak akses diberikan sesuai dengan kebutuhan agar keamanan database tetap terjaga.

Misalnya, jika sebuah user hanya perlu melihat data, kita cukup memberikan privilege SELECT.

GRANT SELECT
ON akademik.*
TO 'adminweb'@'localhost';

Dengan perintah tersebut, user hanya dapat membaca data dari database akademik tanpa memiliki izin untuk menambahkan, mengubah, atau menghapus data.

Jenis-Jenis Privilege di MySQL

MySQL menyediakan beberapa jenis privilege yang dapat digunakan sesuai kebutuhan.

PrivilegeFungsi
SELECTMelihat data
INSERTMenambahkan data
UPDATEMengubah data
DELETEMenghapus data
CREATEMembuat database atau tabel
ALTERMengubah struktur tabel
DROPMenghapus database atau tabel
ALL PRIVILEGESMemberikan seluruh akses

Pemberian privilege sebaiknya dilakukan sesuai kebutuhan. Semakin luas akses yang diberikan, semakin besar pula risiko jika terjadi kesalahan.

Melihat Hak Akses User

Untuk mengetahui hak akses yang dimiliki oleh sebuah user, kita dapat menggunakan perintah berikut:

SHOW GRANTS FOR 'adminweb'@'localhost';

Query tersebut akan menampilkan daftar privilege yang diberikan kepada user adminweb.

Dengan cara ini, administrator dapat memastikan apakah hak akses yang dimiliki user sudah sesuai dengan kebutuhan atau masih perlu disesuaikan.

Menghapus Hak Akses User

Jika suatu user sudah tidak membutuhkan hak akses tertentu, kita dapat menghapus privilege tersebut menggunakan perintah REVOKE.

Contohnya:

REVOKE INSERT
ON akademik.*
FROM 'adminweb'@'localhost';

Perintah tersebut akan menghapus izin INSERT dari user adminweb, sehingga user tidak lagi dapat menambahkan data baru ke database akademik.

Dengan menggunakan REVOKE, kita dapat menyesuaikan kembali hak akses user tanpa harus membuat akun baru.

Menghapus User MySQL

Selain menghapus hak akses, kita juga dapat menghapus user yang sudah tidak digunakan.

Gunakan perintah berikut:

DROP USER 'adminweb'@'localhost';

Perintah tersebut akan menghapus user adminweb dari server MySQL.

Menghapus user yang sudah tidak digunakan merupakan salah satu langkah sederhana untuk menjaga keamanan database dan memastikan hanya akun yang diperlukan saja yang memiliki akses.

Tips Mengelola User dan Privilege MySQL

Agar database tetap aman, berikut beberapa hal yang perlu diperhatikan:

  • Hindari menggunakan akun root untuk aplikasi.
  • Gunakan password yang kuat.
  • Berikan akses sesuai kebutuhan user.
  • Jangan memberikan ALL PRIVILEGES jika tidak diperlukan.
  • Hapus user yang sudah tidak digunakan.
  • Periksa kembali hak akses secara berkala.

Dengan pengaturan privilege yang tepat, database akan lebih aman dan lebih mudah dikelola.

Kesimpulan

User dan privilege merupakan fitur penting di MySQL yang digunakan untuk mengatur siapa saja yang dapat mengakses database serta aktivitas apa saja yang dapat dilakukan. Dengan menggunakan akun khusus dan memberikan hak akses sesuai kebutuhan, keamanan database dapat lebih terjaga dibandingkan menggunakan akun root untuk semua aktivitas.

Demikian seri Belajar SQL Database bagian 16 tentang Mengenal User dan Hak Akses (Privilege) di MySQL. Dengan memahami user dan privilege, Anda dapat mengatur akses database dengan lebih aman serta menghindari penggunaan hak akses yang tidak diperlukan.

Nantikan seri Belajar SQL Database berikutnya untuk mempelajari konsep SQL lainnya secara bertahap, mulai dari dasar hingga teknik yang lebih lanjut.

Bermanfaatkah Artikel Ini?

Klik bintang 5 untuk rating!

Rating rata-rata 0 / 5. Vote count: 0

Belum ada vote hingga saat ini!

Kami mohon maaf artikel ini kurang berguna untuk Anda!

Mari kita perbaiki artikel ini!

Beri tahu kami bagaimana kami dapat meningkatkan artikel ini?

Kholifatush Sholichah

Kholifatush Sholichah, atau yang akrab disapa Lika adalah bagian dari team Technical Support Rumahweb. Lika suka menulis jurnal tentang WordPress, cara mengatasi berbagai macam error, seperti SSL error, database error, dan masalah teknis lainnya yang sering terjadi pada website. Melalui tulisannya, Lika ingin membantu Anda mengatasi masalah tersebut dengan solusi yang mudah dipahami.