Kompetensi-2 Mengevaluasi pengamanan sistem basis data pada RDBMS
A.Password Akses basis data
Bagaimana Cara Membuat User Di Database MySQL
Pada tutorial kali ini kita akan belajar tentang "Bagaimana Cara Membuat User Di Database MySQL". Membuat user database merupakan salah satu hal yang sangat penting dalam administrasi sebuah database terutama pada database MySQL.
Secara default, ketika Anda meng-install database MySQL di komputer Anda, maka database MySQL akan membuatkan satu user yaitu root dengan password kosong (tanpa password). Untuk alasan keamana, sebaiknya Anda secepatnya mengganti password user root tersebut dengan password yang telah disiapkan.
Penjelasan sintak:
Contoh #1:
Perintah diatas akan membuat user dengan nama admin pada mesin localhost dengan password admin123.
Contoh #2:
Perintah diatas akan membuat user dengan nama 'admin' dan user tersebut dapat login dari mesin atau komputer manapun. Tanda '%' mirip seperti wildcard (LIKE Statement) pada SQL query.
Catatan:
Secara default, ketika Anda meng-install database MySQL di komputer Anda, maka database MySQL akan membuatkan satu user yaitu root dengan password kosong (tanpa password). Untuk alasan keamana, sebaiknya Anda secepatnya mengganti password user root tersebut dengan password yang telah disiapkan.
Membuat User Dengan CREATE USER
Di bawah ini adalah sintak dasar untuk membuat user database dengan menggunakan perintah CREATE USER.CREATE USER nama_user@nama_mesin IDENTIFIED BY password
Penjelasan sintak:
- nama_user adalah user name yang akan Anda berikan.
- nama_mesin artinya user tersebut dapat diakses oleh mesin atau host/IP address berapa. Anda dapat menggunakan localhost apabila user hanya bisa diakses oleh mesin localhost. Atau Anda juga bisa menggunakan '%' jika user dapat diakses dari mesin manapun.
- password adalah password yang Anda akan berikan.
Contoh #1:
CREATE USER admin@localhost IDENTIFIED BY admin123;
Perintah diatas akan membuat user dengan nama admin pada mesin localhost dengan password admin123.
Contoh #2:
CREATE USER admin@'%' IDENTIFIED BY admin123;
Perintah diatas akan membuat user dengan nama 'admin' dan user tersebut dapat login dari mesin atau komputer manapun. Tanda '%' mirip seperti wildcard (LIKE Statement) pada SQL query.
Menampilkan Daftar User
Anda dapat menampilkan daftar user di database MySQL dengan menggunakan sintak dibawah ini:SELECT User, Password, Host FROM user;
Catatan:
- Untuk menampilkan daftar user di database MySQL, Anda harus mempunyai akses ke database "mysql". Secara default user "root" dapat mengakses database "mysql".
- Untuk mengakses database "mysql", Anda bisa menggunakan perintah USE mysql;
Contoh:
Contoh :
mysql> SELECT User, Password, Host -> FROM user; +--------------+-------------------------------------------+-----------+ | User | Password | Host | +--------------+-------------------------------------------+-----------+ | root | | localhost | | root | | linux | | | | localhost | | | | linux | | pma | | localhost | | karangdempel | *1036B1BEFB38FA6C09D02ADBBA071C3775586C60 | localhost | +--------------+-------------------------------------------+-----------+ 6 rows in set (0.00 sec)
Membuat User Dengan Insert Statement
Selain dengan menggunakan perintah CREATE USER seperti diatas, Anda juga dapat membuat user dengan menggunakan INSERT statement. Jangan lupa, Anda harus memberikan function "PASSWORD" untuk mengenkripsi password Anda.Contoh :
mysql> INSERT INTO user(user, host, password) -> VALUES ('nursalim','localhost', PASSWORD('nursalim')); Query OK, 1 row affected, 1 warning (0.00 sec)Untuk membuktikan apakah Anda telah berhasil membuat user, Anda bisa menggunakan query dibawah ini:
mysql> SELECT User, Password, Host -> FROM user; +--------------+-------------------------------------------+-----------+ | User | Password | Host | +--------------+-------------------------------------------+-----------+ | root | | localhost | | root | | linux | | | | localhost | | | | linux | | pma | | localhost | | karangdempel | *1036B1BEFB38FA6C09D02ADBBA071C3775586C60 | localhost | | nursalim | *A9B69CE7E0ED887FB4B4D54342FC402086184A4E | localhost | +--------------+-------------------------------------------+-----------+ 7 rows in set (0.00 sec)
B.Enkripsi Password
Definisi Enkripsi
Salah satu hal yang penting dalam komunikasi menggunakan computer untuk menjamin kerahasian data adalah enkripsi. Enkripsi adalah sebuah proses yang melakukan perubahan sebuah kode dari yang bisa dimengerti menjadi sebuah kode yang tidak bisa dimengerti (tidak terbaca).
Enkripsi Pada Database
—Teknik enkripsi digunakan supaya orang tidak dapat secara langsung membaca data yang ada pada tabel. Enkripsi data biasanya digunakan untuk mensamarkan salahsatu field pada tabel. Salah satu contohnya adalah Password. Karena penyimpanan password memerlukan suatu pengamanan yg tidak sembarangan. —Sangat disarankan apabila password disimpan dalam keadaan terenkripsi. Sehingga apabila ada seseorang yang tidak berkepentingan mendapatkan isi dari tabel user maka orang tersebut masih relative sulit menebak password user tersebut. Ada banyak sekali metode encrypt data, tapi intinya dari metode-metode tersebut dikatakan bagus apabila hasilnya sulit ditebak dan proses encrypt/decryptnya cepat. Untuk melakukan encrypt/decrypt dapat menggunakan perintah pada Transact SQL.Enkripsi untuk Keamanan Database
—Enkripsi dapat diartikan sebagai kode atau chiper. Sebuah sistem pengkodean menggunakan suatu table atau kamus yang telah didefinisikan untuk mengganti kata dari informasi atau yang merupakan bagian dari informasi yang dikirim. —Sebuah chiper menggunakan suatu algoritma yang dapat mengkodekan semua aliran data (stream) bit dari sebuah pesan menjadi cryptogram yang tidak dimengerti (unitelligible). Karena teknik cipher merupakan suatu sistem yang telah siap untuk di automasi, maka teknik ini digunakan dalam sistem keamanan komputer dan network.
C.Priviledge
Hak akses dalam MySQL selain dibatasi dengan query apa saja
yang dibolehkan, juga dapat dibatasi pada level dimana query tersebut
akan dijalankan, misalkan pada level database, level tabel atau level kolom.
D.Pembatasan Kewenangan hak akses
pengguna basis data RDBMS
1. Hak Akses Global (*.*)
Hak akses ini berarti user dapat memiliki hak akses untuk seluruh database yang terdapat di dalam MySQL. Contoh penulisan query GRANT untuk level ini adalah:
GRANT SELECT ON *.* TO 'user' @ 'localhost' ; |
Perhatikan cara penulisan nama_database.nama_tabel, dimana kita menulisnya dengan *.*, sehingga user tersebut dapat mengakses seluruh tabel pada seluruh database.
2. Hak Akses Level Database (nama_database.*)
Hak akses ini berarti user memiliki hak akses penuh untuk sebuah database. Contoh penulisan query GRANT untuk level database ini adalah:
GRANT SELECT ON universitas.* TO 'user' @ 'localhost' ; |
Untuk penulisan nama_database.nama_tabel, kita membatasi nama database, namun memberikan hak akses untuk seluruh tabel, penulisannya adalah nama_database.*
3. Hak Akses Level Tabel (nama_database.nama_tabel)
Hak akses ini berarti user memiliki hak akses untuk sebuah tabel yang berada pada sebuah database. Contoh penulisan query GRANT untuk level ini adalah:
GRANT SELECT ON universitas.mahasiswa_ilkom TO 'user' @ 'localhost' ; |
Hak akses yang dimiliki user hanya terbatas pada level sebuah tabel saja.
4. Hak Akses Level Kolom (nama_kolom)
Hak akses ini adalah hak akses paling kecil yang dapat diberikan kepada sebuah user. Dengan hak akses level kolom, user hanya memiliki hak akses untuk beberapa kolom pada sebuah tabel. Contoh penulisan query GRANT untuk level kolom ini adalah:
GRANT SELECT (nama,umur) ON universitas.mahasiswa_ilkom TO 'user' @ 'localhost' ; |
Level paling akhir ini kita membatasi hak akses user hanya untuk kolom tertentu saja. Penulisan kolom yang diperbolehkan diletakkan di dalam tanda kurung.
E. Penambahan dan penghapusan pengguna basis data
Sistem manajemen basis data (Bahasa Inggris: database management system, DBMS), atau kadang disingkat SMBD, adalah suatu sistem atau perangkat lunak yang dirancang untuk mengelola suatu basis data dan menjalankan operasi terhadap data yang diminta banyak pengguna. Contoh tipikal SMBD adalah akuntansi, sumber daya manusia, dan sistem pendukung pelanggan, SMBD telah berkembang menjadi bagian standar di bagian pendukung (back office) suatu perusahaan. Contoh SMBD adalah Oracle, SQL server 2000/2003, MS Access, MySQL dan sebagainya. DBMS merupakan perangkat lunak yang dirancang untuk dapat melakukan utilisasi dan mengelola koleksi data dalam jumlah yang besar.
DBMS juga dirancang untuk dapat melakukan manipulasi data secara lebih mudah. Sebelum adanya DBMS, data pada umumnya disimpan dalam bentuk flat file, yaitu file teks yang ada pada sistem operasi. Sampai sekarangpun masih ada aplikasi yang menyimpan data dalam bentuk flat secara langsung.
Menyimpan data dalam bentuk flat file mempunyai kelebihan dan kekurangan. Penyimpanan dalam bentuk ini akan mempunyai manfaat yang optimal jika ukuran filenya relatif kecil, seperti file o dari flat file, seperti bertambahnya kecepatan dalam pengolahan data. Namun metode ini masih memiliki banyak kelemahan, diantaranya adalah masalah manajemen dan keamanan data yang masih kurang. Penyimpanan data dalam bentuk DBMS mempunyai banyak manfaat dan kelebihan dibandingkan dengan penyimpanan dalam bentuk flat file atau spreadsheet, diantaranya:
1. Performa yang dapat dengan penyimpanan dalam bentuk DBMS cukup besar, sangat jauh berbeda dengan performance data yang disimpan dalam bentuk flat file. Disamping memiliki unjuk kerja yang lebih baik, juga akan didapatkan efisiensi penggunaan media penyimpanan dan memori
2. Integritas data lebih terjamin dengan penggunaan DBMS. Masalah redudansi sering terjadi dalam flat file. Redudansi adalah kejadian berulangnya data atau kumpulan data yang sama dalam sebuah database yang mengakibatkan pemborosan media penyimpanan.
3. Independensi. Perubahan struktur database dimungkinkan terjadi tanpa harus mengubah aplikasi yang mengaksesnya sehingga pembuatan antarmuka ke dalam data akan lebih mudah dengan penggunaan DBMS.
4. Sentralisasi. Data yang terpusat akan mempermudah pengelolaan database. kemudahan di dalam melakukan bagi pakai dengan DBMS dan juga kekonsistenan data yang diakses secara bersama-sama akan lebiih terjamin daripada data disimpan dalam bentuk file atau worksheet yang tersebar.
5. Keamanan. DBMS memiliki sistem keamanan yang lebih fleksibel daripada pengamanan pada file sistem operasi. Keamanan dalam DBMS akan memberikan keluwesan dalam pemberian hak
Komentar
Posting Komentar