Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Cara Membuat Pengguna Baru dan Memberikan Izin di MySQL

MySQL adalah sistem manajemen basis data yang populer dan banyak digunakan yang menyimpan dan mengatur data dan memungkinkan pengguna untuk mengambilnya kembali. Muncul dengan beragam opsi yang memberi pengguna izin tertentu ke tabel dan database.

Dalam panduan ini, Anda akan mempelajari cara membuat pengguna baru dan memberikan izin di MySQL basis data.

Cara Membuat Pengguna Baru di MySQL

Untuk membuat pengguna baru, login terlebih dahulu ke shell MySQL.

$ sudo mysql -u root -p

Berikan kata sandi sudo diikuti dengan kata sandi yang diberikan saat mengatur database MySQL dan tekan ENTER . Setelah itu, Anda akan mendapatkan prompt ini.

Untuk membuat pengguna baru, gunakan sintaks yang ditunjukkan di bawah ini:

MariaDB [none]> CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';

Misalnya, untuk membuat pengguna baru bernama ‘tecmint ' dalam database, jalankan perintah:

MariaDB [none]> CREATE USER 'tecmint'@'localhost' IDENTIFIED BY 'QkYKmw$5tec';

Beberapa Hal yang Perlu Diingat

Saat menambahkan pengguna secara lokal yaitu, pada sistem yang telah Anda instal MySQL , host pengguna ditetapkan sebagai localhost , dan bukan alamat IP. Kata kunci ‘localhost ‘ diterjemahkan menjadi ‘komputer ini ' dan MySQL memperlakukannya secara unik. Pada dasarnya, localhost digunakan oleh klien mysql untuk membuat koneksi ke server database MySQL yang diinstal secara lokal.

Sejauh ini, tecmint pengguna tidak memiliki izin untuk berinteraksi dengan database. Faktanya, pengguna bahkan tidak dapat mengakses shell MySQL.

Untuk memberikan akses penuh kepada pengguna ke semua database, termasuk tabel, jalankan.

MariaDB [none]> GRANT ALL PRIVILEGES ON * . * TO 'tecmint'@'localhost';

Pada perintah di atas, tanda bintang menunjuk ke database dan tabel masing-masing yang dapat diakses pengguna. Ini memberi pengguna semua hak atas database – baca , tulis , edit, dan jalankan termasuk melakukan semua tugas di seluruh database dan tabel lain juga.

Sejauh ini, kami telah memberikan akses penuh kepada pengguna ke database. Meskipun ini berguna dalam menjelaskan konsep MySQL, umumnya tidak disarankan karena dapat menimbulkan risiko keamanan ke database Anda. Pikirkan saja apa yang mungkin terjadi jika seorang peretas mendapatkan kata sandi pengguna. Kami akan melanjutkan lebih jauh dan mendiskusikan cara menetapkan izin khusus di bagian berikutnya.

Setelah Anda selesai memberikan izin kepada pengguna, muat ulang semua hak istimewa seperti yang ditunjukkan agar perubahan diterapkan.

MariaDB [none]> FLUSH PRIVILEGES

Cara Memberikan Izin Pengguna Berbeda

Berikut rincian izin yang dapat Anda berikan kepada pengguna:

  • SEMUA HAK ISTIMEWA – Seperti yang terlihat sebelumnya, ini memberi pengguna MySQL akses penuh ke database tertentu.
  • BUAT – Memungkinkan pengguna membuat database atau tabel baru.
  • LEPASKAN – Memungkinkan pengguna untuk menghapus database atau pengguna.
  • MASUKKAN – Memungkinkan pengguna untuk menyisipkan baris dalam tabel.
  • HAPUS – Memungkinkan pengguna untuk menghapus baris dari tabel.
  • PILIH – dengan izin 'PILIH', pengguna dapat membaca isi tabel.
  • PERBARUI – Memungkinkan pengguna memperbarui baris dalam tabel.
  • OPSI HIBAH – Pengguna dapat memberikan atau menghapus hak istimewa pengguna lain.

Untuk memberikan izin pengguna tertentu, gunakan sintaks:

MariaDB [none]> GRANT permission_type ON database_name.table_name TO 'username'@'localhost';

Selain itu, Anda dapat menetapkan izin ke semua tabel dalam database dengan satu simbol asterisk seperti yang ditunjukkan:

MariaDB [none]> GRANT permission_type ON database_name.* TO 'username'@'localhost';

Misalnya, untuk menetapkan PILIH izin untuk 'tecmint ' pengguna di semua tabel database testdb , jalankan perintah.

MariaDB [none]> GRANT SELECT ON testdb.* TO 'tecmint'@'localhost';

Kemudian hapus hak istimewa agar perubahan diterapkan.

MariaDB [none]> FLUSH PRIVILEGES;

Selain itu, Anda dapat menetapkan beberapa izin sekaligus dengan memisahkannya dengan koma seperti yang ditunjukkan.

MariaDB [none]> GRANT INSERT, UPDATE ON testdb.* TO 'tecmint'@'localhost';

Cara Mencabut Izin MySQL

Untuk mencabut izin dari pengguna, gunakan sintaks:

MariaDB [none]> REVOKE permission_type ON database_name.table_name FROM 'username'@'localhost';

Misalnya, untuk mencabut INSERT izin dari pengguna 'tecmint ’, jalankan perintahnya.

MariaDB [none]> REVOKE INSERT ON testdb.* FROM tecmint'@'localhost';
MariaDB [none]> FLUSH PRIVILEGES

Untuk mengintip izin pengguna saat ini, jalankan:

MariaDB [none]> SHOW GRANTS FOR 'username'@'localhost';

Dari output di bawah ini, kita dapat melihat bahwa INSERT izin telah dihapus dari 'tecmint ’ pengguna hanya menyisakan PILIH dan PERBARUI hak atas testdb basis data.

Untuk menguji login ke shell MySQL menggunakan pengguna baru, logout terlebih dahulu.

MariaDB [none]> quit;

Kemudian login kembali.

$ sudo mysql -u tecmint -p

Berikan kata sandi pengguna dan tekan ENTER untuk mengakses shell.

Untuk menjatuhkan pengguna, gunakan DROP perintah, seperti yang Anda lakukan saat menghapus database.

MariaDB [none]> DROP USER 'username'@'localhost';

Anda mungkin juga ingin membaca artikel terkait MySQL berikut ini:

  • Tips Berguna untuk Mengatasi Kesalahan Umum di MySQL
  • Mytop – Alat yang Berguna untuk Memantau Kinerja MySQL/MariaDB di Linux
  • Cara Mengubah Port MySQL/MariaDB Default di Linux
  • Cara Menyetel Ulang Kata Sandi Root MySQL atau MariaDB di Linux
Kesimpulan

Mudah-mudahan, sekarang, Anda dapat membuat pengguna di server database MySQL Anda dan dengan nyaman menetapkan atau mencabut izin.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Gagal atau Hancurkan Instans MySQL Anda untuk Pengujian

  2. SQL menghitung semua baris alih-alih menghitung baris individual

  3. Pegas, Hibernasi, Blob pemuatan malas

  4. PDOException SQLSTATE[HY000] [2002] Tidak ada file atau direktori seperti itu

  5. Apa perbedaan antara MySQL dan SQL?