---
# System prepended metadata

title: "Dokumentasi Basis data\U0001F601"

---

# 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]