Keamanan Pada Perancangan Basisdata 1

1. Pendahuluan Supaya basisdata yang kita rancang mendukung perusahaan dalam mencapai tujuannya, basisdata harus bisa diakses dan di update oleh pengguna. DBA dan pembuat aplikasi harus memberi pengguna akses ke basisdata yang mereka butuhkan untuk menyelesaikan pekerjaan mereka, sembari meminimalkan kerusakan yang dapat mereka lakukan pada sistem dan menyembunyikan data yang tidak boleh dilihat oleh mereka.
2. Pentingnya Keamanan pada Perancangan Basisdata Untuk pengguna yang mengakses sistem, harus bisa mengakses melalui Local Area Network (LAN) atau Wide Area Network (WAN) dan sekarang ini yang paling banyak melalui World Wide Web. Aplikasi menggunakan aplikasi web browser sebagai antarmuka utama sudah umum sekarang ini. Ketika kita meletakkan basisdata pada web, dia menjadi mudah diserang oleh hacker dan penjahat lainnya dari luar organisasi yang akan merusak atau mencuri data. Bayangkan bahwa gaji semua orang, data personalia, atau data rahasia perusahaan lainnya ditampilkan kepada umum melalui website. Bahkan dari dalam perusahaan sendiri dapat terjadi seorang pegawai merusak sistem ketika mereka dipecat. Kebanyakan basisdata sekarang ini memungkinkan akses melalui WWW. Bagian dari perancangan harus memasukkan obyek-obyek basisdata (pengguna, kode, tabel, role) yang mendukung akses web dan syarat keamanan yang vital seperti setifikat dan SSL yang harus disertakan dengan akses tersebut. Kemungkinan terjadinya gangguan dari orang-orang baik dalam maupun luar organisasi harus dilawan. Masalah yang lebih besar dapat terjadi ketika orang-orang dalam perusahaan harus menanggulangi kemungkinan kesalahan yang tak disengaja. Menghapus atau menimpa suatu file data, menghapus tabel atau mengupdate kolom secara tidak benar dengan tidak sengaja, dapat menimbulkan masalah seperti yang ditimbulkan oleh hacker. Oleh karena itu keamanan harus direncanakan dengan baik dan diintegrasikan dalam basisdata.

2. Basisdata seharusnya tidak hanya menyediakan data pada pengguna tapi juga menyediakan proteksi pada data tersebut. 3 Yang Berhak Mengakses Basisdata Sebagian informasi yang dibutuhkan selama perancangan dan penerapan akan dikumpulkan dari wawancara selama analisis. Supaya dapat merencanakan keamanan basisdata selama perancangan basisdata dan melaksanakan keamanan setelah penerapan, semua pengguna basisdata harus ditetapkan terlebih dahulu. Ada beberapa kategori pengguna untuk setiap sistem informasi, mulai dari pengguna akhir sampai administrator sistem informasi. Pengguna yang mempunyai akses untuk sistem informasi adalah sebagai berikut: • Pengguna akhir • Pelanggan • Manajemen • Administrator jaringan • Administrator sistem • Administrator basisdata • Pemilik skema Masing-masing pengguna ini mempunyai tingkatan akses yang berbeda. Cara termudah untuk menerapkan keamanan adalah dengan memberi semua pengguna akses maksimum, tapi kelemahannya adalah adanya kemungkinan kehilangan atau penyalagunaan data. Pengguna basisdata harus mempunyai akses yang cukup untuk melaksanakan pekerjaannya. Dengan kata lain akses yang diberikan kepada pengguna harus sekecil mungkin untuk menghindari masalah. Beberapa informasi bisa merupakan informasi rahasia atau sensitif. Jika ada data yang sensitif, sebaiknya data diisolasi dengan memecahnya menjadi tabel terpisah yang dapat dihubungkan dengan tabel-tabel yang tidak sensitif atau dengan membuat view yang tidak memasukkan data yang sensitif.

3. Pengguna yang ingin melihat semua data akan diberi akses untuk suatu tabel, dan pengguna yang tidak mempunyai akses hanya diberi hak untuk melihat view saja. Ketika hak akses pengguna pada suatu data ditentukan, tipe akses harus ditentukan. Secara umum data dapat dibuat, diambil, di update, dan dihapus dari basisdata. Beberapa pengguna bisa jadi ingin melakukan semua operasi pada basisdata. Pengguna lainnya mungkin hanya ingin melakukan query pada basisdata, atau mengupdate data dari tabel tertentu dalam basisdata. Pengguna tertentu tidak diperbolehkan untuk menghapus data. 3.1 Tingkatan Akses Pengguna basisdata diberi identitas pengguna dengan password dan kemampuan untuk berhubungan dengan basisdata. Basisdata modern membutuhkan keputusan tentang perancangan yang berhubungan dengan identitas pengguna dan password. Keamanan digunakan untuk mengontrol akses. Pengguna mempunyai akses ke baik data maupun sumberdaya, keduanya dapat dikontrol pada tingkatan basisdata. Apabila pengguna diberi identitas pengguna, mereka dapat mengakses basisdata secara langsung kedalam jaringan melalui aplikasi client-server. Mereka juga dapat log in melalui aplikasi middle tier untuk mengakses basisdata. Sebagai contoh, pengguna dapat log in ke server aplikasi web yang mempunyai banyak pengguna web yang log in ke server tersebut. Server aplikasi web kemudian berkomunikasi dengan basisdata dengan cara log in dengan menggunakan identitas pengguna yang mempunyai akses minimum yang dibutuhkan untuk menyelesaikan pekerjaan yang sedang dikerjakan oleh aplikasi web. Aplikasi client-server umumnya hanya mempunyai satu identitas pengguna untuk masing-masing pengguna. Aplikasi web yang menggunakan server aplikasi web middle tier dapat menggunakan satu atau beberapa pengguna basisdata. Pada kedua kasus tersebut, bagian dari perancangan

4. basisdata adalah menentukan kombinasi privilege Create, Retrieve, Update, Delete (CRUD-atau INSERT, SELECT, UPDATE, DELETE dalam SQL) pada kombinasi apa dari tabel basisdata yang dibutuhkan untuk menyelesaikan masing-masing pekerjaan yang didukung oleh basisdata. Masing-masing kombinasi privilege yang dibutuhkan untuk menyelesaikan perkerjaan tertentu harus ditentukan dan kemudian dianalisa untuk memastikan bahwa akses yang diberikan tidak melebihi yang dibutuhkan untuk menyelesaikan pekerjaan. Pada beberapa basisdata, pengguna dapat log in ke basisdata berdasarkan otorisasi eksternal. Pada otorisasi eksternal pengguna mempunyai ID pengguna pada sistem operasi yang dibuat pada Unix, Novell atau NT untuk basisdata. tersebut. Pengguna yang mempunyai identitas sistem operasi merupakan pengguna basisdata yang diatur untuk otorisasi eksternal. Menggunakan otorisasi eksternal, pengguna sistem operasi yang log in ke basisdata dapat secara otomatis log in ke basisdata tanpa password. Pengguna sistem operasi dan basisdata yang diatur untuk otorisasi eksternal biasanya adalah DBA atau account basisdata yang menjalankan program eksternal seperti program C++ yang mengakses basisdata. Sistem Administrator sistem operasi (SA) (root pada Unix, Admin pada Novell) dapat mengontrol account sistem operasi ini dan juga account basisdata. Baik Sistem Administrator dan Administrator Basisdata mempunyai potensi melakukan kesalahan. Bagian dari proses adalah cek and balance untuk memastikan bahwa account yang super ini tidak disalahgunakan. Berikut ini adalah daftar yang menunjukkan tingkatan akses ke suatu sistem informasi : • Pengguna Super (root pada Unix, Admin pada Novell) • Pemilik Basisdata • Pemilik Skema • Pengguna Akhir


5. Pengguna super adalah account pada sistem operasi yang mempunyai privilege yang paling banyak. Pengguna super mempunyai akses ke semua file yang disimpan pada sistem. Pemilik basisdata mempunyai akses ke semua file yang berhubungan dengan software basisdata dan file data pada suatu sistem. Meskipun pemilik basisdata dibatasi pada file-file yang berhubungan dengan basisdata, tapi perlu diingat bahwa sebagian file pada sebagian sistem adalah berhubungan dengan basisdata. Pemilik skema adalah pembuat dan pemilik obyek-obyek basisdata yang digunakan untuk aplikasi pengguna. Pemilik skema mempunyai akses tak terbatas ke seluruh obyek skema dan bertanggungjawab untuk mengontrol akses tersebut ke account pengguna lainnya. Pengguna akhir mempunyai akses yang paling sedikit, meskipun basisdata dibuat untuk pengguna akhir. Gambar 1.1 menunjukkan hubungan pengguna dengan basisdata. Obyek-obyek basisdata dipunyai oleh pemilik skema yang memberi akses terhadap obyek tersebut kepada pengguna akhir. Jika pengguna akhir mempunyai privilege yang cukup, mereka dapat mengakses tabel, view, dan obyek lainnya didalam skema. TABEL1VIEW1TABEL2VIEW2Pemilik SkemaPENGGUNA1PENGGUNA4PENGGUNA3PENGGUNA2SkemaGrant akses ke penggunaQueryMembuat data baruUpdate dataHapus data Gambar 1.1 Hubungan pengguna dengan basisdata


6. Pengguna dalam suatu basisdata dapat juga mengakses basisdata lainnya dengan cara menghubungkan dua basisdata tersebut. Hubungan ini akan menghubungkan pengguna ke basisdata pertama ke pengguna pada basisdata kedua, dan pengguna pada pertama kemudian dapat mengakses basisdata kedua dengan privilege yang dipunyai oleh pengguna pada basisdata kedua. Hubungan basisdata ini merupakan tool yang yang sangat berguna, tapi harus diatur untuk memastikan mereka tidak disalahgunakan. Dapat dengan mudah untuk melihat seseorang pengguna suatu basisdata dengan menghubungkannya ke basisdata lainnya. Hubungan ini dapat dibuat oleh account DBA. 3.2 Privilege Privilege digunakan untuk mengontrol akses pengguna. Privilege terdapat pada tingkatan sistem operasi, basisdata, dan aplikasi. Privilege basisdata mengontrol akses pengguna dalam lingkungan basisdata, seperti manipulasi struktur basisdata dan akses ke obyek skema. Ada dua tipe dasar privilege dalam basisdata relasional: • Privilege sistem • Privilege obyek Privilege sistem terdiri dari hal-hal yang memungkinkan pengguna untuk melakukan tugasnya pada ruang lingkup basisdata, sedangkan privilege obyek memungkinkan pengguna untuk melakukan tugasnya pada ruang lingkup skema. Privilege sistem biasanya termasuk kemampuan untuk membuat tabel, menghapus tabel, merubah struktur tabel, membuat indeks dan view, dan memanipulasi account pengguna. Privilege obyek termasuk kemampuan untuk mengambil data dari tabel dan memanipulasi data tabel. Privilege sistem berbeda-beda antara satu perangkat lunak basisdata relasional dengan yang lainnya. Sedangkan privilege obyek lebih standar. Berikut adalah privilege obyek untuk basisdata relasional • SELECT – memungkinkan data diambil dari tabel
Simarmata dan Paryudi
Materikuliah.com @2006

7. • INSERT - memungkinkan pembentukan baris data baru pada tabel • UPDATE - memungkinkan data yang sudah ada dalam tabel untuk dimodifikasi • REFERENCES - memungkinkan kolom dalam tabel untuk diacu oleh kolom lain (seperti melalui kunci tamu) • USAGE - memungkinkan penggunaan domain tertentu Privilege di grant kepada pengguna dengan perintah GRAND dan dicabut dari pengguna dengan perintah REVOKE. Dua pilihan dapat digunakan dengan perintah GRAND untuk memungkinkan pengguna lain memberi grant pada pengguna lainnya. Jika seorang pengguna di grant privilege obyek dengan WITH GRANT OPTION, dia diberi hak akses khusus ke obyek basisdata, tapi juga dapat meng-grant akses tertentu terhadap obyek basisdata kepada pengguna lain, meskipun pengguna asli tidak mempunyai obyek. Demikian juga dengan WITH ADMIN OPTION yang dapat ditambahkan pada perintah GRANT yang berhubungan dengan privilege sistem, dan memungkinkan seorang pengguna untuk meng-grant privilege sistem ke pengguna lain. Gambar 1.2 mengilustrasikan proses pengaturan akses pengguna akhir melalui privilege basisdata. Dua tipe privilege ditunjukkan pada gambar yaitu privilege obyek dan privilege sistem. Pemilik skema bertanggungjawab untuk meng-grant privilege obyek kepada pengguna, dan DBA meng-grant privilege sistem. Pemilik SkemaPENGGUNA1PENGGUNA4PENGGUNA3PENGGUNA2TABEL1TABEL2VIEW1VIEW2CREATETABELCREATE INDEXCREATE VIEWSELECTINSERTUPDATEDELETEDBAPengguna akhirgrantgrantkekepada Gambar 1.2 Proses pengaturan akses pengguna akhir melalui privilege basisdata

8. Roles Kombinasi dari privilege basisdata dan privilege tabel CRUD yang diperlukan untuk menyelesaikan pekerjaan tertentu dapat diberikan pada pengguna secara individu. Tetapi hal ini tidak efektif untuk dilakukan. Sebagai bagian dari perancangan, kita bisa menentukan fungsi pekerjaan apa yang ada pada aplikasi kita dan privilege apa yang ada pada basisdata, tabel-tabelnya, dan obyek-obyek basisdata lain yang dibutuhkan oleh masing-masing fungsi pekerjaan. Kita kemudian bisa membuat obyek basisdata yang disebut role, yang mengikutsertakan seluruh privilege yang dibutuhkan untuk menyelesaikan fungsi tersebut. Pengguna kemudian di grant satu atau lebih sejumlah role. Identitas pengguna di grant pada role tersebut yang dibutuhkan untuk menyelesaikan semua fungsi yang berhak dilakukan oleh pengguna tertentu. Sebagai tambahan pada SELECT, INSERT, UPDATE, atau DELETE, role bisa juga memasukkan privilege untuk merubah obyek, membuat indeks pada obyek, menghubungkannnya melalui kunci tamu, atau mengeksekusinya. Menggunakan role menyederhanakan pengaturan akses basisdata dan pengaturan privilege obyek basisdata. Pemilik SkemaPENGGUNA1TABEL1TABEL2VIEW1VIEW2CREATETABELCREATE INDEXCREATE VIEWSELECTINSERTUPDATEDELETEDBAgrantgrantkekepadaAPP_ROLE1DBADapatdi grantmembuatDapatdicabutPENGGUNA3PENGGUNA2PENGGUNA4 Gambar 1.3 Pemakaian Role Basisdata


9. Gambar 1.3 mengilustrasikan pemakaian role basisdata. Pertama DBA membuat role. Ketika role dibuat, dia merupakan obyek kosong yang hanya mempunyai nama. Role tersebut dapat di grant ke pengguna setiap saat setelah dia dibuat, meskipun privilege biasanya di grant ke role terlebih dahulu. Privilege obyek dapat di grant oleh role ke pemilik skema dan privilege sistem dapat di grant oleh DBA. Role dapat disebut sebagai kumpulan privilege yang dapat di grant dan dicabut dengan mudah pada pengguna basisdata. Seorang pengguna dapat di grant satu atau banyak role, tergantung pada pembagian privilege untuk suatu aplikasi dan tingkatan akses dari pengguna. Ketika log in ke basisdata, pengguna mempunyai semua privilege yang terkandung pada role yang telah di grant pada role tersebut.

Referensi Materikuliah.com

Back


3 comments:

  1. Informasi di Blog Anda sangat membantu saya untuk menyelesaikan paper akademik di http://widiaribowo.blogstudent.mb.ipb.ac.id/
    Terimakasih.

    ReplyDelete
  2. terima kasih atas informasi yang sangat bermanfaat ini

    ReplyDelete
  3. Terima Kasih sudah posting ini, bantu tugas saya selesai dalam 5 menit hehehe

    ReplyDelete

 
Top