-
Notifications
You must be signed in to change notification settings - Fork 32
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: Menambahkan materi Data control language (#52)
* feat: Menambah Query Grant * feat:Menambah query grant dan revoke * fix: memperbaiki typo pada penulisan * fix: Codacy Production rules * fix: Codacy Production rules Co-authored-by: Aditya Fitriana NS <[email protected]>
- Loading branch information
1 parent
44788bd
commit 59bd9f3
Showing
2 changed files
with
214 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,106 @@ | ||
# Memberi Privileges | ||
|
||
> 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 atau mencabut akses kepada User lain | | ||
| ALL | Semua Hak _Privileges_ | | ||
|
||
## Sintak | ||
|
||
```sql | ||
GRANT hak_akses ON nama_objek TO user; | ||
``` | ||
|
||
Selalu simpan perubahan yang dilakukan dengan sintak : | ||
|
||
```sql | ||
FLUSH Privileges; | ||
``` | ||
|
||
## Query | ||
|
||
Untuk contoh di materi ini, saya menggunakan : | ||
|
||
User : `bell_user` | ||
|
||
Database : `Sekolah` | ||
|
||
tabel : `Siswa` | ||
|
||
### Membuat User Baru | ||
|
||
```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_ (`SELECT` dan `INSERT`) ke User `bell_user` terhadap semua objek didalam database `Sekolah` | ||
|
||
```sql | ||
GRANT SELECT ON Sekolah.* TO 'bell_user'@'localhost'; | ||
|
||
GRANT INSERT ON Sekolah.* TO 'bell_user'@'localhost'; | ||
``` | ||
|
||
### Memberi dua atau lebih Privileges | ||
|
||
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 1 Kolom | ||
|
||
_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 | ||
GRANT SELECT(id,name) ON Sekolah.Siswa 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'; | ||
``` | ||
|
||
### Memberikan Semua Privileges terhadap 1 database | ||
|
||
Memberikan semua _Privileges_ ke database `Sekolah` | ||
|
||
```sql | ||
GRANT ALL ON Sekolah 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'; | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,108 @@ | ||
# 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_ | Deskripsi | | ||
| ------------ | ------------------------------------------------------ | | ||
| 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_ | | ||
|
||
## Syntax | ||
|
||
```sql | ||
REVOKE hak_akses ON nama_objek FROM user; | ||
``` | ||
|
||
Selalu simpan perubahan yang dilakukan dengan sintak : | ||
|
||
```sql | ||
FLUSH Privileges; | ||
``` | ||
|
||
## Syntak 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'; | ||
``` |