Anda di halaman 1dari 38

Meningkatkan Optimasi

dan Keamanan Database


Muhamad Iqbal Nurmanditya
Muhamad Iqbal
Nurmanditya
• Alumni SMKN 2 Bandung 2018
• Mahasiswa Teknik Informatika Universitas Sangga Buana
YPKP
• Web Developer, Mitra Telkom Indonesia pada unit WIB-
SSOF
• Founder Unicode Creative Group

iqbalmind
Table of contents

01 02 03
Review Database Persiapan Optimasi Mulai Optimasi
Rangkuman seputar database Mari mengenal terlebih dahulu Disini Praktek Sederhana
optimasi dalam DB seputar optimasi

04 05 06
Persiapan Keamanan Keamanan Backup
Mari mengenal kenapa Disini Praktek Sederhana Antisipasi data apabila tidak
keamanan perlu ditingkatkan seputar Keamanan ingin hilang
“Database: the information you lose when your
memory crashes..”

—Dave Barry
Review
01
Database
Rangkuman seputar database
Database

Database dapat diartikan sebagai kumpulan data


yang disimpan secara sistematis di dalam
komputer yang dapat diolah atau dimanipulasi
menggunakan perangkat lunak (software) program
atau aplikasi untuk menghasilkan informasi.
Pentingnya Database

Penyimpanan Dapat Diolah


Mendukung aplikasi yang Database pada aplikasi bisa
membutuhkan ruang diolah dan menghasilkan
penyimpanan informasi bagi pengembangan
aplikasi
Ranking Database Engine Nov 2020

1345.00 555.06
Score Score

1241.64 453.83
Score Score

1037.64 161.62
Score Score
Sumber: https://db-engines.com/en/ranking
Persiapan
02
Optimasi
Mari mengenal terlebih dahulu optimasi dalam DB
Apakah Perlu
mengoptimasi?

Ya, karena membantu kinerja aplikasi dan


server.
Pentingnya Optimasi

Jika kita tidak memiliki Gudang data


atau DB ke 2 untuk Analisa.
Pengoptimalan adalah kuncinya. Kueri
yang tidak efisien akan menghabiskan
sumber daya database produksi, dan
menyebabkan kinerja yang lambat atau
hilangnya layanan bagi pengguna lain
jika kueri berisi kesalahan. Sangat
penting bagi kita untuk
mengoptimalkan kueri agar tidak
berdampak pada kinerja database.
Definisikan Kebutuhan Terlebih dahulu

Fokus ke Hasil Spesifikasi Server Gunakan 5W


Beri Query tujuan yg pasti
Rancang persyaratan Who? What? Where?
dan jangan gunakan DB
optimal server yang When? Why?
Prod utk analisis
diperlukan app.
Download Contoh Database

● https://dev.mysql.com/doc/index-other.html
● https://o7planning.org/en/10235/sample-mysql-database-for-learning-sql
Mulai
03
Optimasi
Disini Praktek Sederhana seputar optimasi
Memory

CPU
Kebutuhan
Server Disk

Network
Memori database
Pada dasarnya SQL akan menggunakan RAM
yang tersedia kecuali Kita membatasi
penggunaan. Jadi semakin banyak Ram
semakin baik
Cek penggunaan disk database
SELECT table_schema "DB Name",
ROUND(SUM(data_length + index_length) / 1024 / 1024, 1) "DB Size in MB"
FROM information_schema.tables
GROUP BY table_schema;
Pedoman Optimasi Query
Hindari penggunaan Function
SELECT * FROM TABLE1 WHERE UPPER(COL1)='ABC’

Hindari penggunaan wildcard (%) didepan


SELECT * FROM TABLE1 WHERE COL1 LIKE '%ABC’

Hindari penggunaan SELECT yang tidak perlu

Gunakan inner join, daripada outer join jika memungkinkan

Jangan gunakan MySQL sebagai QUEUE


Ada 2 masalah:
-Menserialkan Workloadmelarang task parallel
-sering kali menghasilkan tabel yang berisi task dalam proses serta data historis dari task yang
sudah selesai
MySQL Server Config
Cek Cache
mysql> SHOW VARIABLES LIKE 'have_query_cache’;

Set Cache
mysql> SET GLOBAL query_cache_size = 40000;

query_cache_size – Rekomendasi sekitar 10MB jika kurang naik terus per 10MB.

Max_connection – Jumlah banyak nya koneksi yang di izinkan ke database.

innodb_buffer_pool_size – Pengaturan ini mengalokasikan memori sistem sebagai cache data


untuk database. Catat RAM yang diperlukan untuk menjalankan sumber daya sistem lain.

innodb_io_capacity – Variabel ini menetapkan kecepatan input / output dari perangkat


penyimpanan
Persiapan
04
Keamanan
Mari mengenal kenapa keamanan perlu ditingkatkan
Tahapan paling
krusial dalam
Database
Tujuan
Keamanan
Availability
Pengguna yang terdaftar tidak boleh
ditolak akses.

Secrecy/Confidentiality
Informasi diungkapkan kepada
pengguna yang tidak sah.
Integrity
Hanya pengguna berwenang yang
diizinkan untuk memodifikasi data.
Kategori Keamanan Database

Keamanan Server Trusted IP Access


Perlindungan Server adalah Setiap server harus dapat
suatu proses pembatasan akses mengkonfigurasikan alamat IP
yang sebenarnya pada yang diperbolehkan
database dalam server itu mengakses dirinya.
sendiri.

Koneksi Database Kontrol Akses Table


Berikan koneksi aplikasi Penggunaan control akses
sesuai kebutuhan dan hak table yang benar
akses
Otorisasi Hak Akses
• Read Authorization: User di perbolehkan membaca data tapi tidak dapat memodifikasi.
• Insert Authorization: User di perbolehkan menambah data yang baru tapi tidak dapat
menghapus data yang sudah ada.
• Update Authorization: User diperbolehkan memodifikasi data yang sudah ada tapi tidak
dapat menghapus data.
• Delete Authorization: User di perbolehkan menghapus data.
• Index Authorization: User diperbolehkan membuat dan menghapus index data.
• Resource Authorization: User diperbolehkan membuat relasi-relasi baru.
• Alteration Authorization: User di perbolehkan menambah/menghapus atribute suatu
relasi.
• Drop Authorization: User diperbolehkan menghapus relasi yang sudah ada. 
Otorisasi Hak Akses Tambahan
• Index Authorization
pengguna diperbolehkan membuat dan menghapus index data.
• Resource Authorization:
pengguna diperbolehkan membuat relasi-relasi baru.
• Alteration Authorization:
pengguna diperbolehkan menambah/menghapus atribut suatu
relasi.
• Drop Authorization:
pengguna diperbolehkan menghapus relasi yang sudah ada.
Contoh perintah menggunakan SQL
• GRANT: memberikan wewenang kepada pemakai
• Syntax: GRANT <priviledge list> ON <nama relasi/view> TO
<pemakai>
• Contoh: GRANT SELECT ON S TO BUDIGRANT
SELECT,UPDATE (STATUS,KOTA) ON S TO ALI,BUDI
• REVOKE: mencabut wewenang yang dimiliki oleh pemakai
• Syntax: REVOKE <priviledge list> ON <nama relasi/view>
FROM <pemakai>
• Contoh:
• REVOKE SELECT ON S FROM BUDI
• REVOKE SELECT,UPDATE (STATUS,KOTA) ON S FROM
ALI,BUDI
05 Keamanan
Disini Praktek Sederhana seputar Keamanan
Berbagai macam Tingkatan

Fisikal Manusia
Dimana Lokasi nyata server Wewenang pengguna harus
berada diberikan secara benar

Sistem Operasi Sistem Database


Sistem Operasi perlu di cek Pengaturah hak akses
dari virus dan aplikasi
berbahaya
Atur Expired Password User
• Fitur yang mungkin jarang digunakan
• Jika user yang terdaftar di database bisa diberi hak akses loh
• CREATE USER ‘IqbalMind'@'localhost' PASSWORD EXPIRE
INTERVAL 90 DAY;
• ALTER USER ‘IqbalMind'@'localhost' PASSWORD EXPIRE
INTERVAL 90 DAY;
• Dan kita bisa mengatur agar user tidak menggunakan pass yang
sama sampai 5x ganti password
• CREATE USER ‘IqbalMind'@'localhost' PASSWORD
HISTORY 5;
06 Backup
Antisipasi data apabila tidak ingin hilang
Berbagai macam Backup

Full Backup Incremental Differential


Backup backups
Backup semua Hanya menyalin semua Sama seperti
database secara penuh data yang berubah Incremental backup
sejak terakhir kali tetapi setiap terakih
melakukan incremental Full Backup
backup.
Full Backup

1 2 3 4

10GB 10GB 10GB 10GB


Incremental Backup

1 2 3 4

10GB 1GB 2GB 0.5GB


(Base Backup)
Differential Backup

1 2 3 4

10GB 2GB 3GB 4GB


(Full Backup)
Tips Keamanan Database
Step 1 Step 3 Step 5
Jangan pernah menggunakan Tentukan Hak akses Lakukan Back up secara
Root dalam koneksi DB berkala

Step 2 Step 4
Atur Expired User Lakukan Monitoring database
Thanks
Do you have any questions?

iqbalmind76@gmail.com
+62 822 4045 1401

This presentation template was created by Slidesgo,


including icons by Flaticon, infographics & images by
Freepik and illustrations by Stories
Referensi

Optimasi Keamanan:
● Dev MySQL
● Dns Stuff ● Oracle
● Toptal ● Data Sunrise
● Cloudways ● eSecurity Planet
● MySQL Tutorial ● Dev MySQL (Backup)
● Sisense ● NAKIVO
● BPPT CSIRT
● DB Engine
● Phoenixnap
● DZone
Resources

● Connected
Stories: ● Profile pic
● Blog post ● Mention
● To the stars ● Word of mouth
● Social ideas ● World map
● Live collaboration
● About us page
● Target

Photos:
Mobile Marketing ● Coworkers using devices at work
● Make it rain ● Phone with apps and laptop
● Experts
● Market Launch
● Social Dashboard

Anda mungkin juga menyukai