From 6c93cd43fe102b37c42e36135e3f2af4626d2229 Mon Sep 17 00:00:00 2001 From: Fairus Atoir <36189723+fairusatoir@users.noreply.github.com> Date: Sun, 12 Dec 2021 00:21:15 +0700 Subject: [PATCH 1/5] feat: Menambah Query Grant --- .../1_Menerima_Akses/README.md | 112 ++++++++++++++++++ 1 file changed, 112 insertions(+) diff --git a/Basic/04_Data_Control_Language/1_Menerima_Akses/README.md b/Basic/04_Data_Control_Language/1_Menerima_Akses/README.md index e69de29..a352690 100644 --- a/Basic/04_Data_Control_Language/1_Menerima_Akses/README.md +++ b/Basic/04_Data_Control_Language/1_Menerima_Akses/README.md @@ -0,0 +1,112 @@ +# GRANT USER + +> GRANT merupakan perintah untuk memberikan izin Hak Istimewa (Privileges) kepada User yang ada di MySQL agar dapat mengakses objek yang ada di database. + +Secara default yang dapat memberi Hak Istimewa (_Privileges_) kepada user lain adalah user `root` (Super User) karena secara default user `root` memiliki semua _Privileges_. + +_Privileges_ yang bisa diberikan adalah : + +| _Privileges_ | Diskripsi | +| ---------------- | -------------------------------------------- | +| SELECT | Hak untuk Menampilkan data yang sudah ada | +| INSERT | Hak untuk memasukan data | +| UPDATE | Hak untuk mengubah data yang sudah ada | +| DELETE | Hak untuk menghapus data yang sudah ada | +| INDEX | Hak untuk membuat atau menghapus Index | +| CREATE | Hak untuk membuat tabel baru | +| ALTER | Hak untuk mengubah tabel yang sudah ada | +| DROP | Hak untuk menghapus tabel yang sudah ada | +| GRANT OPTION | Hak untuk memberi akses kepada User lain | +| ALL _Privileges_ | Memberikan semua _Privileges_ yang sudah ada | + +## Sintak + +```sql +GRANT hak_akses ON nama_objek TO user; +``` + +Selalu simpan perubahan yang dilakukan dengan sintak : + +```sql +FLUSH Privileges; +``` + +## Sintak Query + +Untuk contoh di materi ini, saya menggunakan : + +- User : `bell_user` +- Database : `Sekolah` +- tabel : `Siswa` + +### Membuat User Baru + +**User** baru yang baru dibuat tidak memiliki _Privileges_ sama sekali kesemua objek. + +```sql +CREATE USER 'bell_user'@'localhost' IDENTIFIED BY 'password'; +``` + +### Memberi satu Privileges saja + +Memberikan satu _Privileges_ ke User `bell_user` terhadap semua objek didalam database `Sekolah` + +```sql +-- Memberikan Privileges SELECT +GRANT SELECT ON Sekolah.* TO 'bell_user'@'localhost'; + +-- Memberikan Privileges INSERT +GRANT INSERT ON Sekolah.* TO 'bell_user'@'localhost'; +``` + +### Memberi dua atau lebih Privileges + +Memberikan 2 atau lebih _Privileges_ ke User `bell_user` ke terhadap semua objek didalam database `Sekolah`. + +```sql +GRANT SELECT,INSERT,CREATE ON Sekolah.* TO 'bell_user'@'localhost'; +``` + +### Memberi Privileges terhadap Tabel + +_Privileges_ juga bisa diatur untuk hanya bisa mengakses beberapa tabel yang ada didalam database `Sekolah` + +```sql +-- Memberikan Privileges SELECT dan INSERT terhadap tabel Siswa +GRANT SELECT,INSERT ON Sekolah.Siswa TO 'bell_user'@'localhost'; +``` + +### Memberi Privileges terhadap Kolom + +_Privileges_ juga bisa diatur untuk hanya bisa mengakses beberapa kolom tabel yang ada didalam database `Sekolah` + +Untuk Query nya, nama kolom ditulis di sebelah _Privileges_ dan didalam kurung `()` + +```sql +-- Memberikan Privileges SELECT hanya di kolom id dan name didalam tabel Siswa +GRANT SELECT(id,name) ON Sekolah.Siswa TO 'bell_user'@'localhost'; +``` + +### Memberikan semua Privileges terhadap 1 database + +Memberikan semua _Privileges_ ke database `Sekolah` + +```sql +GRANT ALL ON Sekolah TO 'bell_user'@'localhost'; +``` + +### Memberikan semua Privileges terhadap 1 Tabel + +Memberikan semua _Privileges_ ke tabel `Siswa` di dalam database `Sekolah` + +```sql +GRANT ALL ON Sekolah.Siswa TO 'bell_user'@'localhost'; +``` + +### Membuat Super User + +Membuat user baru yang memiliki semua _Privileges_ seperti user `root`. + +```sql +GRANT ALL ON * . * TO 'bell_user'@'localhost'; +``` From 59e920f138bad58f0e6ffec966b5353c29d47fed Mon Sep 17 00:00:00 2001 From: Fairus Atoir <36189723+fairusatoir@users.noreply.github.com> Date: Sun, 12 Dec 2021 10:35:11 +0700 Subject: [PATCH 2/5] feat:Menambah query grant dan revoke --- .../1_Menerima_Akses/README.md | 70 +++++------- .../2_Menolak_Akses/README.md | 106 ++++++++++++++++++ 2 files changed, 137 insertions(+), 39 deletions(-) diff --git a/Basic/04_Data_Control_Language/1_Menerima_Akses/README.md b/Basic/04_Data_Control_Language/1_Menerima_Akses/README.md index a352690..b03e4cd 100644 --- a/Basic/04_Data_Control_Language/1_Menerima_Akses/README.md +++ b/Basic/04_Data_Control_Language/1_Menerima_Akses/README.md @@ -1,23 +1,23 @@ -# GRANT USER +# Memberi Privileges -> GRANT merupakan perintah untuk memberikan izin Hak Istimewa (Privileges) kepada User yang ada di MySQL agar dapat mengakses objek yang ada di database. +> GRANT merupakan perintah untuk memberikan Hak Istimewa (Privileges) kepada User yang ada di MySQL agar dapat mengakses objek yang ada di database. Secara default yang dapat memberi Hak Istimewa (_Privileges_) kepada user lain adalah user `root` (Super User) karena secara default user `root` memiliki semua _Privileges_. _Privileges_ yang bisa diberikan adalah : -| _Privileges_ | Diskripsi | -| ---------------- | -------------------------------------------- | -| SELECT | Hak untuk Menampilkan data yang sudah ada | -| INSERT | Hak untuk memasukan data | -| UPDATE | Hak untuk mengubah data yang sudah ada | -| DELETE | Hak untuk menghapus data yang sudah ada | -| INDEX | Hak untuk membuat atau menghapus Index | -| CREATE | Hak untuk membuat tabel baru | -| ALTER | Hak untuk mengubah tabel yang sudah ada | -| DROP | Hak untuk menghapus tabel yang sudah ada | -| GRANT OPTION | Hak untuk memberi akses kepada User lain | -| ALL _Privileges_ | Memberikan semua _Privileges_ yang sudah ada | +| _Privileges_ | Diskripsi | +| ------------ | ------------------------------------------------------ | +| SELECT | Hak untuk Menampilkan data yang sudah ada | +| INSERT | Hak untuk memasukan data | +| UPDATE | Hak untuk mengubah data yang sudah ada | +| DELETE | Hak untuk menghapus data yang sudah ada | +| INDEX | Hak untuk membuat atau menghapus Index | +| CREATE | Hak untuk membuat tabel baru | +| ALTER | Hak untuk mengubah tabel yang sudah ada | +| DROP | Hak untuk menghapus tabel yang sudah ada | +| GRANT OPTION | Hak untuk memberi atau mencabut akses kepada User lain | +| ALL | Semua Hak _Privileges_ | ## Sintak @@ -31,7 +31,7 @@ Selalu simpan perubahan yang dilakukan dengan sintak : FLUSH Privileges; ``` -## Sintak Query +## Query Untuk contoh di materi ini, saya menggunakan : @@ -41,66 +41,58 @@ Untuk contoh di materi ini, saya menggunakan : ### Membuat User Baru -**User** baru yang baru dibuat tidak memiliki _Privileges_ sama sekali kesemua objek. - ```sql CREATE USER 'bell_user'@'localhost' IDENTIFIED BY 'password'; ``` +**User** baru yang baru dibuat tidak memiliki _Privileges_ sama sekali. + +Sehingga jika menjalankan `SELECT * FROM Siswa` akan mengeluarkan error + +> SELECT command denied to user 'bell_user'@'localhost' for table 'Siswa' + ### Memberi satu Privileges saja -Memberikan satu _Privileges_ ke User `bell_user` terhadap semua objek didalam database `Sekolah` +Memberikan satu _Privileges_ (`SELECT` dan `INSERT`) ke User `bell_user` terhadap semua objek didalam database `Sekolah` ```sql --- Memberikan Privileges SELECT GRANT SELECT ON Sekolah.* TO 'bell_user'@'localhost'; --- Memberikan Privileges INSERT GRANT INSERT ON Sekolah.* TO 'bell_user'@'localhost'; ``` ### Memberi dua atau lebih Privileges -Memberikan 2 atau lebih _Privileges_ ke User `bell_user` ke terhadap semua objek didalam database `Sekolah`. +Memberikan 2 atau lebih _Privileges_ ke User `bell_user` terhadap semua objek didalam database `Sekolah`. ```sql GRANT SELECT,INSERT,CREATE ON Sekolah.* TO 'bell_user'@'localhost'; ``` -### Memberi Privileges terhadap Tabel - -_Privileges_ juga bisa diatur untuk hanya bisa mengakses beberapa tabel yang ada didalam database `Sekolah` - -```sql --- Memberikan Privileges SELECT dan INSERT terhadap tabel Siswa -GRANT SELECT,INSERT ON Sekolah.Siswa TO 'bell_user'@'localhost'; -``` - -### Memberi Privileges terhadap Kolom +### Memberi Privileges terhadap 1 Kolom -_Privileges_ juga bisa diatur untuk hanya bisa mengakses beberapa kolom tabel yang ada didalam database `Sekolah` +_Privileges_ juga bisa diatur untuk hanya bisa mengakses beberapa kolom (`id`,`name`) dari tabel `Siswa` yang ada didalam database `Sekolah` Untuk Query nya, nama kolom ditulis di sebelah _Privileges_ dan didalam kurung `()` ```sql --- Memberikan Privileges SELECT hanya di kolom id dan name didalam tabel Siswa GRANT SELECT(id,name) ON Sekolah.Siswa TO 'bell_user'@'localhost'; ``` -### Memberikan semua Privileges terhadap 1 database +### Memberikan Semua Privileges terhadap 1 Tabel -Memberikan semua _Privileges_ ke database `Sekolah` +Memberikan semua _Privileges_ ke tabel `Siswa` di dalam database `Sekolah` ```sql -GRANT ALL ON Sekolah TO 'bell_user'@'localhost'; +GRANT ALL ON Sekolah.Siswa TO 'bell_user'@'localhost'; ``` -### Memberikan semua Privileges terhadap 1 Tabel +### Memberikan Semua Privileges terhadap 1 database -Memberikan semua _Privileges_ ke tabel `Siswa` di dalam database `Sekolah` +Memberikan semua _Privileges_ ke database `Sekolah` ```sql -GRANT ALL ON Sekolah.Siswa TO 'bell_user'@'localhost'; +GRANT ALL ON Sekolah TO 'bell_user'@'localhost'; ``` ### Membuat Super User diff --git a/Basic/04_Data_Control_Language/2_Menolak_Akses/README.md b/Basic/04_Data_Control_Language/2_Menolak_Akses/README.md index e69de29..04e6a97 100644 --- a/Basic/04_Data_Control_Language/2_Menolak_Akses/README.md +++ b/Basic/04_Data_Control_Language/2_Menolak_Akses/README.md @@ -0,0 +1,106 @@ +# Mencabut Privileges + +> REVOKE merupakan perintah untuk mencabut Hak Istimewa (Privileges) dari User yang ada di MySQL agar tidak dapat mengakses objek yang ada di database. + +Secara default yang dapat mencabut Hak Istimewa (_Privileges_) dari user lain adalah user `root` (Super User) karena secara default user `root` memiliki semua _Privileges_. + +**Sebisa mungkin jangan mencabut _Privileges_ dari user** `root` + +_Privileges_ yang bisa dicabut adalah : + +| _Privileges_ | Diskripsi | +| ------------ | ------------------------------------------------------ | +| SELECT | Hak untuk Menampilkan data yang sudah ada | +| INSERT | Hak untuk memasukan data | +| UPDATE | Hak untuk mengubah data yang sudah ada | +| DELETE | Hak untuk menghapus data yang sudah ada | +| INDEX | Hak untuk membuat atau menghapus Index | +| CREATE | Hak untuk membuat tabel baru | +| ALTER | Hak untuk mengubah tabel yang sudah ada | +| DROP | Hak untuk menghapus tabel yang sudah ada | +| GRANT OPTION | Hak untuk memberi atau mencabut akses kepada User lain | +| ALL | Semua Hak _Privileges_ | + +## Sintak + +```sql +REVOKE hak_akses ON nama_objek FROM user; +``` + +Selalu simpan perubahan yang dilakukan dengan sintak : + +```sql +FLUSH Privileges; +``` + +## Sintak Query + +Untuk contoh di materi ini, saya menggunakan : + +- User : `bell_user` +- Database : `Sekolah` +- tabel : `Siswa` + +### Mencabut satu Privileges saja + +Mencabut satu _Privileges_ (`SELECT` dan `INSERT`) dari User `bell_user` terhadap semua objek didalam database `Sekolah` + +```sql +REVOKE SELECT ON Sekolah.* FROM 'bell_user'@'localhost'; + +REVOKE INSERT ON Sekolah.* FROM 'bell_user'@'localhost'; +``` + +Setelah mencabut _Privileges_, jika menjalankan `SELECT * FROM Siswa` akan mengeluarkan error + +> SELECT command denied to user 'bell_user'@'localhost' for table 'Siswa' + +> INSERT command denied to user 'bell_user'@'localhost' for table 'Siswa' + +### Mencabut dua atau lebih Privileges + +Mencabut 2 atau lebih _Privileges_ (`SELECT` dan `INSERT`) dari User `bell_user` ke terhadap semua objek didalam database `Sekolah`. + +```sql +REVOKE SELECT,INSERT ON Sekolah.* FROM 'bell_user'@'localhost'; +``` + +### Mencabut Privileges terhadap 1 Kolom + +Pencabutan _Privileges_ juga bisa diatur hanya untuk beberapa kolom (`id`) di tabel `siswa` yang ada didalam database `Sekolah` + +Untuk Query nya, nama kolom ditulis di sebelah _Privileges_ dan didalam kurung `()` + +```sql +REVOKE SELECT(id) ON Sekolah.Siswa FROM 'bell_user'@'localhost'; +``` + +Sehingga saat menjalankan `SELECT * FROM Siswa` akan mengeluarkan error karena tidak memiliki*Privileges* untuk melihat kolom `id` di kolom `Siswa` + +> SELECT command denied to user 'bell_user'@'localhost' for column 'id' in table 'Siswa' + +### Mencabut Semua Privileges terhadap 1 Tabel + +Mencabut semua _Privileges_ dari tabel `Siswa` di dalam database `Sekolah` + +```sql +REVOKE ALL ON Sekolah.Siswa FROM 'bell_user'@'localhost'; +``` + +### Mencabut Semua Privileges terhadap 1 database + +Mencabut semua _Privileges_ dari database `Sekolah` + +```sql +REVOKE ALL ON Sekolah FROM 'bell_user'@'localhost'; +``` + +### Mencabut Semua Hak Akses + +Mencabut semua _Privileges_ yang dimiliki user `bell_user`. + +Sebisa mungkin **jangan** melakukan **Pencabutan Semua Hak Akses** dari user `root` + +```sql +REVOKE ALL ON * . * FROM 'bell_user'@'localhost'; +``` From 8b1dc44d6622b2028d2cbb4203c1e0ef742587d4 Mon Sep 17 00:00:00 2001 From: Aditya Fitriana NS <89055857+AdityaFitrianaNS@users.noreply.github.com> Date: Sun, 12 Dec 2021 16:07:49 +0700 Subject: [PATCH 3/5] fix: memperbaiki typo pada penulisan --- Basic/04_Data_Control_Language/2_Menolak_Akses/README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Basic/04_Data_Control_Language/2_Menolak_Akses/README.md b/Basic/04_Data_Control_Language/2_Menolak_Akses/README.md index 04e6a97..55fc0fc 100644 --- a/Basic/04_Data_Control_Language/2_Menolak_Akses/README.md +++ b/Basic/04_Data_Control_Language/2_Menolak_Akses/README.md @@ -8,7 +8,7 @@ Secara default yang dapat mencabut Hak Istimewa (_Privileges_) dari user lain ad _Privileges_ yang bisa dicabut adalah : -| _Privileges_ | Diskripsi | +| _Privileges_ | Deskripsi | | ------------ | ------------------------------------------------------ | | SELECT | Hak untuk Menampilkan data yang sudah ada | | INSERT | Hak untuk memasukan data | @@ -21,7 +21,7 @@ _Privileges_ yang bisa dicabut adalah : | GRANT OPTION | Hak untuk memberi atau mencabut akses kepada User lain | | ALL | Semua Hak _Privileges_ | -## Sintak +## Syntax ```sql REVOKE hak_akses ON nama_objek FROM user; @@ -33,7 +33,7 @@ Selalu simpan perubahan yang dilakukan dengan sintak : FLUSH Privileges; ``` -## Sintak Query +## Syntak Query Untuk contoh di materi ini, saya menggunakan : From dd72657cb29ba1dc0561cd8f789442d17a3578d5 Mon Sep 17 00:00:00 2001 From: Fairus Atoir <36189723+fairusatoir@users.noreply.github.com> Date: Wed, 29 Dec 2021 15:47:16 +0700 Subject: [PATCH 4/5] fix: Codacy Production rules --- Basic/04_Data_Control_Language/1_Menerima_Akses/README.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Basic/04_Data_Control_Language/1_Menerima_Akses/README.md b/Basic/04_Data_Control_Language/1_Menerima_Akses/README.md index b03e4cd..a6a77f4 100644 --- a/Basic/04_Data_Control_Language/1_Menerima_Akses/README.md +++ b/Basic/04_Data_Control_Language/1_Menerima_Akses/README.md @@ -35,9 +35,11 @@ FLUSH Privileges; Untuk contoh di materi ini, saya menggunakan : -- User : `bell_user` -- Database : `Sekolah` -- tabel : `Siswa` +User : `bell_user` + +Database : `Sekolah` + +tabel : `Siswa` ### Membuat User Baru From 369ca2819f0a4e92fdc0f55bb5c4455f47ae3470 Mon Sep 17 00:00:00 2001 From: Fairus Atoir <36189723+fairusatoir@users.noreply.github.com> Date: Wed, 29 Dec 2021 15:48:22 +0700 Subject: [PATCH 5/5] fix: Codacy Production rules --- .../04_Data_Control_Language/2_Menolak_Akses/README.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/Basic/04_Data_Control_Language/2_Menolak_Akses/README.md b/Basic/04_Data_Control_Language/2_Menolak_Akses/README.md index 55fc0fc..9d11ecc 100644 --- a/Basic/04_Data_Control_Language/2_Menolak_Akses/README.md +++ b/Basic/04_Data_Control_Language/2_Menolak_Akses/README.md @@ -37,9 +37,11 @@ FLUSH Privileges; Untuk contoh di materi ini, saya menggunakan : -- User : `bell_user` -- Database : `Sekolah` -- tabel : `Siswa` +User : `bell_user` + +Database : `Sekolah` + +Tabel : `Siswa` ### Mencabut satu Privileges saja @@ -75,7 +77,7 @@ Untuk Query nya, nama kolom ditulis di sebelah _Privileges_ dan didalam kurung ` REVOKE SELECT(id) ON Sekolah.Siswa FROM 'bell_user'@'localhost'; ``` -Sehingga saat menjalankan `SELECT * FROM Siswa` akan mengeluarkan error karena tidak memiliki*Privileges* untuk melihat kolom `id` di kolom `Siswa` +Sehingga saat menjalankan `SELECT * FROM Siswa` akan mengeluarkan error karena tidak memiliki _Privileges_ untuk melihat kolom `id` di kolom `Siswa` > SELECT command denied to user 'bell_user'@'localhost' for column 'id' in table 'Siswa'