# Cara buat Server Client gitulah Version Workbench ## Bagian Server ### Full Script ``` create database db_user; use db_user; select user, host from mysql.user; create user "Tamu"@"localhost" identified by "123456789"; grant select,update on db_toko_buku.buku to "Tamu"@"localhost"; grant select,update on db_toko_buku.distributor to "Tamu"@"localhost"; show grants for "Tamu"@"localhost"; revoke select,update on db_toko_buku.buku from "Tamu"@"localhost"; ``` Gampangnya gini lah scriptnya ### Fungsi Select User ``` select user, host from mysql.user; ``` fungsi dari ini untuk menampilkan user darimana? dari tabel `mysql.user` dari situ akan keliatan ada berapa user ![image](https://hackmd.io/_uploads/BkgY9w85T.png) normalnya beginiya tanpa user **Tamu** `create user "Nama(bebas)"@"localhost" identified by "123456789";` baris ini dipake buat ngebikin **User** dan perintah `identified` itu buat *Password* ### Grant perintah `grant` dipake untuk mmeberikan akses umumnya seperti ini `grant [HakAkses] on [namaDB.namaTabel] to "[nama]"@"localhost";` Hak Akses 😊 ada beberapa jenis Hak akses antara lain : * `SELECT` : Hak akses untuk membaca data dari tabel. * `INSERT` : Hak akses untuk menambahkan data baru ke dalam tabel. * `UPDATE` : Hak akses untuk memperbarui atau mengubah data yang sudah ada di dalam tabel. * `DELETE` : Hak akses untuk menghapus data dari tabel. * `CREATE` : Hak akses untuk membuat objek baru seperti tabel, database, atau indeks. * `DROP` : Hak akses untuk menghapus objek seperti tabel, database, atau indeks. * `ALTER` : Hak akses untuk mengubah struktur dari objek seperti tabel. * `GRANT OPTION` : Hak akses untuk memberikan hak akses kepada pengguna lain. * `ALL PRIVILEGES` : Hak akses yang mencakup semua hak akses di atas. dan hak akses bisa digabung seperti ``` grant select,update on db_toko_buku.buku to "Tamu"@"localhost"; ``` ### Menampilkan Hak Akses yang dimiliki ``` show grants for "Tamu"@"localhost"; ``` singkatnya ini digunakan untuk melihat hak apa saja yang dimiliki oleh User ### Revoke ``` revoke select,update on db_toko_buku.buku from "Tamu"@"localhost"; ``` Hampir sama dengan `Grant` perbedaannya adalah jika `Grant` memberikan hak akses maka `Revoke` untuk **mencabut/menghapus** hak akses penerapannya sangat mudah yaitu : ``` Revoke [Hak Akses Yang ingin dicabut] on [namaDB.namaTBL] from "[nama]"@"localhost"; ``` ## Bagian Client/Tamu setelah kita membuat di bagian server sekarang kita buat bagian clientnya Pada Halaman depan MYSQL ![image](https://hackmd.io/_uploads/H1hT_O8cp.png) tekan tombol (+) maka akan muncul ![image](https://hackmd.io/_uploads/H1SGFdU5p.png) pada bagian Connection Name itu bebas tapi kalo bisa yang berhubungan dan untuk `Username` isi sesuai dengan akun yang sudah kalian buat tadi diawal ![image](https://hackmd.io/_uploads/Hkc1cOUqp.png) ini adalah tampilan awalnya hanya akan terlihat kosong dan hanya ada DataBase yang dibagikan ### Full Script ``` select * from buku; select * from distributor; use db_toko_buku; update buku set judul = 'nama baru' where id_buku = '2'; select * from det_penjualan; update distributor set nama = 'nama baru' where id_distributor = '5'; select * from distributor; show grants for "Tamu"@"localhost"; ``` pada dasarnya ini sama saja seperti MySQL seperti biasa tetapi kita memiliki hak yang terbatas (Sesuai dengan apa yang sudah diberikan) jika hanya diberikan Hak Akses `Select` maka kita hanya bisa melihat data yang ada didalam tabel tanpa bisa mengubahnya # CMD version CMD - Perintah `Select` untuk menampilkan berapa banyak user ![WhatsApp Image 2024-01-30 at 21.23.09_cfe3998f](https://hackmd.io/_uploads/rkZZstU5T.jpg) - Perintah `Create user` untuk membuat user ![image](https://hackmd.io/_uploads/B1HYiF8cT.png) - ini adalah bagaimana cara masuk ke user yang sudah dibuat dengan CMD ![WhatsApp Image 2024-01-30 at 21.23.09_8b1174e4](https://hackmd.io/_uploads/r13Q2FIqa.jpg) - ini adalah tampilan dalamnya ![WhatsApp Image 2024-01-30 at 21.23.10_1d57cea5](https://hackmd.io/_uploads/B1QUhY8qp.jpg) dalam foto diatas terdapat ERROR itu terjadi karena user ingin membuat `Database` tetapi user tidak memiliki **Hak Akses** sehingga terjadi **ERROR** > note : asik nih > [TOC]