Praktikum
1 MEMBANGUN DATABASE DAN MENGATUR KEAMANANNYA Tujuan : 1 Praktikan mampu untuk membuat database dengan tiga (3) metode yang akan diujicobakan pada praktikum I ini. 2 Praktikan mampu untuk mengatur keamanan database-nya. Alat dan Bahan : 1 Buku literatur mengenai sistem database, terutama yang menggunakan DBMS SQL Server 2000, khususnya mengenai pembuatan database serta manajemen user dan akses privileges. 2 Modul praktikum Landasan Teori : 1 Definisi database & Database Management System (DBMS) Database adalah kumpulan fakta-fakta sebagai representasi dari dunia nyata yang berhubungan dan mempunyai arti tertentu. Database managemen system adalah sebuah program komputer yang memungkinkan pengguna untuk membuat dan memelihara database sehingga pengguna dapat memasukkan, mengubah, menghapus, memanipulasi, dan memperoleh kembali data tersebut dengan mudah. Sebagai contoh DBMS yang sering kita gunakan adalah Ms. Access, Ms. SQL Server, dan lainlain. 2 Pembuatan Database SQL Server menyediakan tiga method untuk membuat database, yaitu : create database wizard, SQL Server Enterprise Manager, dan perintah T-SQL (Query) yang dapat disimpan dalam file dan dijalankan sebagaimana sebuah script. Ms. SQL Server mengimplementasikan database dengan menyimpan 2 struktur, yaitu : • Data Disimpan dengan file extensi *.mdf. File ini berkembang dengan penyimpanan table dan objek database lainnya. • LOG Disimpan dalam file dengan extensi *.ldf. file ini berisi catatan transaksi, yaitu : mencatat modifikasi table (update), mencatat data baru (insert), mencatat penghapusan data (delete). Database dapat mempunyai penyimpanan sekunder sebagai backup dalam file extensi *.ldf. 3 Manajemen User dan Akses Privileges Suatu database yang kompleks dapat diakses oleh banyak user dengan batasan-batasan tertentu. Antara user yang satu dengan user yang lainnya dapat mempunyai tingkatan yang berbeda. Salah satu alasan mengapa perlu adanya beberapa user dengan tingkat hak akses yang berbeda-beda adalah untuk keamanan data. Data-data yang penting dan sifatnya rahasia
kadang tidak boleh diakses oleh user secara umum, hanya user tertentu saja yang boleh mengaksesnya. Dengan adanya manajemen user yang baik maka data tersebut dapat dijamin. Beberapa ijin akses yang dapat diberikan oleh suatu user pada user yang lain terlihat pada tabel berikut :
Dan daftar statemen ijin akses untuk membuat objek database yang baru terlihat pada daftar tabel berikut :
Tugas Pendahuluan Praktikum 1. Jelaskan dengan singkat mengenai sistem database ! 2. Sebutkan sedikitnya 3 DBMS yang Anda kenal selain DBMS yang disebutkan di modul ! 3. Bagaimana Ms. SQL Server mengimplementasikan database-nya ? 4. Apa perbedaan antara GRANT dan REVOKE ? 5. Jelaskan yang dimaksud dengan : a. PRIVILEGE b. OLTP dan OLAP c. Constraint
Percobaan Pembuatan Database Pastikan SQL Server dalam keadaan running dengan cara melihat pada service manager.
Percobaan 1 : Membangun database menggunakan Create Database Wizard 1. Buka SQL Server Enterprise Manager, dan pilih server mana yang ingin Anda gunakan untuk membuat database. Untuk memilih server, mulai dengan meng-klik folder Ms. SQL Server. Klik folder SQL Server Group, dan kemudian klik nama server (local)(Windows NT) yang akan Anda gunakan. Dari menu tools, pilih Wizard.
2. Klik database, lalu klik ganda Create Database Wizard untuk mulai membuat database, atau klik Create Database Wizard, kemudian klik OK untuk melanjutkan.
3. Klik next untuk melanjutkan ke tampilan nama database dan spesifikasi lokasi. Ketikkan nama database yang ingin Anda buat dan path lokasi dimana Anda ingin menyimpan data file dan log file. Lokasi tersebut harus berisi valid drive dan folder yang telah ada pada local system Anda. Jika Anda klik tombol browse […] disebelah kanan dua kotak teks, Anda dapat mencari dan memilih foldernya. Setelah Anda memberi nama database dan lokasi ke path, klik next untuk melanjutkan.
4. Tampilan Name The Database File muncul. Pada kotak dialog ini Anda dapat mengetikkan nama dan initial size untuk masingmasing file database. Primary file database secara otomatis dibuat dan diberi nama dalam awalan. Anda dapat menyetujui nama itu atau mengetikkan yang berbeda. Primary data file berektensi *.mdf. Jika Anda telah memikirkan seberapa besar file database itu, ketik nilai untuk initial size sekarang. Bila sebaliknya, tinggalkan default size. Anda dapat memodifikasinya dikemudian hari menggunakan enterprise manager atau command ALTER DATABASE. Beberapa file yang Anda buat
pada saat pertama, atau primary file, akan menjadi secondary file dan secara otomatis aan diberi ektensi *.ndf. semua file yang dibuat ini akan ditempatkan pada primary filegroup. Tidak ada option user-defined filegroup pada Create Database Wizard.
5. Tampilan Define The Database File Growth akan muncul. Secara umum, Anda harus memilih fasilitas Automatic file growth bila membutuhkan overhead. Bila sebaliknya, maka Anda perlu mengatur ukuran database secara manual sesuai kebutuhan. Anda dapat menspesifikasikan bagaimana database Anda seharusnya bertambah : Apakah menggunakan ukuran MB atau menggunakan ukuran persen dari ukuran sekarang. Klik next untuk melanjutkan.
6. Tampilan Name The Transaction Log Files muncul. Tampilan ini nampak sama dengan tampilan Name The Database Files, tapi yang ini untuk log file. Klik next untuk melanjutkan.
7. Tampilan Define The Transaction Log File Growth tampil. Tampilan ini terlihat sama dengan Define The Database File Growth, tetapi ini untuk mendifinisikan option growth untuk log file. Klik next untuk melanjutkan. 8. Tampilan Completing The Create Database Wizard muncul. Lihat ulang informasi yang telah Anda spesifikasikan untuk database yang baru Anda buat. Jika Anda setuju, klik Finish untuk mengakhiri pembuatan database. Bila sebaliknya, klik Back dan lakukan perubahan lagi seperlunya.
9. Kotak dialog Create Database Wizard Message muncul untuk memberi informasi kepada Anda bahwa database Anda telah dibuat dengan sukses. Klik OK untuk menutup kotak dialog ini. 10. Kotak Message yang lain muncul, menanyakan apakah Anda akan membuat maintenance plan untuk database Anda yang baru. Pembuatan maintenance plan direkomendasikan
untuk memastikan bahwa performance database Anda bagus, memback up secara tetap pada saat system failure, dan melakukan pengecekan pada saat tidak konsisten. Percobaan 2 : Membangun database menggunakan Enterprise Manager 1. Buka Enterprise manager. Pada jendela sebelah kiri, klik SQL Server group yang berisi nama dari server yang Anda inginkan untuk membangun database, dan kemudian klik server itu. Klik kanan folder database dan pilih new database 2. Window Database Properties terbuka, dengan tab General aktif. Ketikkan nama database dalam kotak Name.
3. Klik tab Data Files. Enterprise manager secara otomatis akan membuat primary data filedengan nama database Anda seperti awalan dan dengan PRIMARY sebagai file group. Anda dapat mengubah nama, lokasi, dan ukuran primary file, tetapi Anda tidak dapat mengubah filegroup untuk primary data file. Ketikkan nama (logical name), lokasi (physical name), ukuran dan file group untuk masingmasing data file yang Anda buat. Untuk data file selain dari primary file, Anda dapat mengetikkan userdefined filegroup, dan filegroup akan dibuat untuk Anda.
Lokasi untuk masing-masing file ada pada default folder pada drive yang diinstall SQL Server. Anda dapat mengubah setting dengan mengetikkan path baru atau dengan menggunakan browse.
4. Dalam file properties pada bagian bawah, Anda dapat memilih option Automatic-grow file pada per-file basis. Pilih nama dari file yang ingin Anda set pilihan pertumbuhannya. Anda kemudian dapat menspesifikasikanpertumbuhan file itu dalam megabytes (dengan memilih in megabytes) atau percetage (dengan memilih By percent) dari free space yang ada dalam file. Anda juga dapat menspesifikasikan ukuran maksimum file dengan meng-klik Restrict File Growth dan memasukkan ukuran yang mendekati dalam megabytes, atau Anda dapat meniggalkan file size tanpa restrict dengan memilih unrestricted file growth. Anda dapat mengatur option tersebut pada masing-masing file. Anda juga dapat meninggalkan defaults dan mengesetnya di kemudian hari menggunakan window Enterprise Manager Database Properties. Jika Anda ingin menghapus file dari daftar, pilih nama dari file dan tekan tombol Delete. 5. Setelah selesai mengkonfigurasi semua data file, klik tab Transaction Log dalam window Database Properties untuk konfigurasi file transaction log. Log file dikonfigurasi dengan cara yang sama dengan data files, kecuali bahwa Anda tidak dapat memilih filegroup untuk log files karena tidak termasuk pada beberapa filegroup. Ketikkan nama file(logical name), lokasi (physical name), dan initial size untuk log files atau file. Pilih option Atomatic-growth untuk log files seperti yang dijelaskan pada langkah 4. Percobaan 3 : Membangun database menggunakan command T-SQL (Query Analyzer) Untuk membuat sebuah database dengan T-SQL, diperlukan syntax sebagai berikut : 1. Tanpa parameter nilai-nilai optional
2. Dengan menggunakan parameter lengkap (dicontohkan pembuatan database dengan nama MyData yang berisi data file (MyData_Primary), satu secondary data file (MyData_Secondary), yang sisanya dalam primary filegroup secara default, dan satu transaction log file (MyData_Log) )
Untuk menghapus sebuah database yang sudah dibuat dapat dilakukan dengan instruksi :
Manajemen User dan Akses Privileges Percobaan 4 : Membuat User Baru Di dalam SQL server yang berjalan di mesin windows NT atau Windows 2000 Family, user yang dapat ditambahkan ke dalam SQL server merupakan user sistem operasi. Di antara beberapa user dari sistem operasi tersebut, tidak semuanya menjadi user pada SQL Server. User sistem operasi yang belum menjadi user database server, ketika ingin menjadi user pada database server, perlu didaftar terlebih dahulu. Sebelum melangkah membuat user baru pada database server, Anda akan diperkenalkan dulu dengan bagaimana menambahkan user baru pada sistem operasi Windows 2000. ikuti langkahlangkah berikut: 1. Buka control panel melalui menu start di bagian kiri taskbar, kemudian pilih setting dan pilih Control Panel. Windows Panel akan muncul. 2. Klik ganda pada ikon Users and Passwords sehingga muncul kotak dialog user and Passwords. 3. Pada kotak dialog tersebut, klik tombol Add … sehingga muncul kotak dialog Add New User. Isilah kotak edit pada field Username dengan ‘tamu’, fullname dengan ‘semua tamu’ dan description dengan ‘login untuk semua tamu’. Setelah selesai mengisi field-field tersebut, klik next untuk melanjutkan. 4. Kotak dialog permintaan password akan muncul. Pada kotak dialog ini ada field yang harus diisi, yaitu Password dan Confirm Password. Kedua field tersebut harus diisi dengan value yang sama. Sebagai contoh dalam pembahasan ini gunakan password ‘test’. Jika sudah, klik Next untuk melanjutkan. 5. Tampilan berikutnya adalah level akses dari user yang dibuat. Dalam hal ini ada tiga pilihan, yaitu Standard user, Restricted user, dan Other. Standard user berarti user dapat memodifikasi setting komputer dan menginstall program tetapi tidak dapat membaca file milik user lain bila tanpa ijin. Restric user berarti user dapat menjalankan komputer dan menyimpan dokumen tetapi user tidak dapat menginstall program dan mengubah sistem setting. Pilihan yang ketiga adalah Other. Dengan pilihan ini user dapat menjadi administrator, ORA DBA, atau yang lainnya. Pilih Standard user kemudian klik Finish. 6. Anda telah selesai membuat user baru untuk sistem operasi. Dalam windows User and Passwords terlihat ada satu user baru dengan nama tamu. 7. Klik OK untuk mengakhirinya. Setelah selesai membuat user untuk sistem operasi Windows, selanjutnya Anda dapat membuat user untuk database server. Langkah untuk membuat user untuk database server. Langkah untuk membuat user baru pada SQL server adalah sebagai berikut : 1. Pada aplikasi Interprese Manager, kembangkan folder databases. 2. Setelah muncul semua database, kembangkan folder database MyData. 3. Klik kanan objek user, kemudian klik New Database User. 4. Setelah kotak dialog Database User Properties muncul, klik tombol drop down list dari field Login name. Pada list tersebut akan muncul beberapa user yang ada. Anda dapat memilih user tamu. Field User name akan otomatis terisi sendiri.
5. Pada bagian database Role membersip, anda akan masuk pada Public. Artinnya Anda sebagai pengguna user umum dimana user ini tidak mempunyai hak istimewa seperti melakukan administrasi terhadap database server, dan lain sebagainya. 6.
Jika sudah selesai, Anda klik tombol OK. Terlihat pada Window Enterprise Manager, objek user akan bertambah satu user, yaitu user tamu.
Percobaan 5 : Melakukan Login Untuk menjalankan Ms. SQL Server, user yang digunakan secara otomatis menggunakan user yang sedang menggunakan sistem operasinya, jika SQL Server disetting berdasar Windows Authentication. Jika anda sedang login pada sistem operasi dengan menggunakan administrator maka ketika anda membuka aplikasi Enterprise Manager dari SQL Server secara otomatis akan melakukan login sebagai administrator. Jika anda ingin melakukan login dengan user lain, anda dapat melakukan langkah-langkah berikut: 1. Pada window Enterprise Manager, klik objek database server. 2. Klik tombol New Login pada toolbar sehingga muncul kotak dialog SQL Server Login Properties. 3. Pada Field Name, Anda dapat mengisi dengan nama user yang akan melakukan login. 4. Pada bagian Authentication Anda dapat memilih apakah secara Windows Authentication atau SQL Server Authentication. Jika Anda memilih Windows Authentication, pada bagian field Name anda dapat melakukan klik tombol bertanda .. untuk memilih usernya. Jika anda memilih SQL Server Autehntication Anda masukkan nama user dengan cara mengetikkannya. Field Password akan aktif. Anda dapat mengetikkan password dari user yang akan login. Pada bagian database anda dapat memilih pada database mana user tersebut aktif. Pada bagian ini Anda dapat mencoba memasukkan untuk user tamu. Jika sudah selesai, klik tombol OK. 5. Kotak dialog Confirm New Password akan muncul. Kotak dialog ini muncul karena ketika Anda membuat user baru pada SQL Server, Anda belum memasukkan password. Klik OK pada kotak dialog tersebut. Anda telah selesai melakukan login dengan user tamu, tetapi mungkin anda akan menemukan beberapa pesan yang memberitahukannya bahwa user tersebut belum dapat mengakses database karena belum ada ijin akses terhadap datadatanya. Hal ini disebabkan karena user tamu belum diberi ijin untuk mengakses data pada database tersebut. Percobaan 6 : Memberikan Ijin Akses Seorang user yang telah membuat suatu objek database dapat memberikan ijin akses kepada user yang lain. Statemen dalam T-SQL yang dapat digunakan untuk memberikan ijin akses adalah dengan statemen GRANT. Sintaks dari statemen GRANT secara lengkap adalah sebagai berikut: Statement permissions:
Keterangan : -
GRANT adalah statamen untuk menspesifikasikan pemberian ijin akses. ALL adalah menspesifikasikan bahwa semua ijin akses diberikan.
-
-
Statement adalah berisi statement ijin akses apa saja yang diberikan. Statemen ini merupakan statemen ijin akses yang telah disebutkan pada pembahasan sebelumnya. Statemen yang lebih dari satu dipisahkan dengan tanda koma. TO adalah keyword untuk menspesifikasikan kepada siapa ijin akses tersebut diberikan. User_account adalah nama user yang diber ijin akses.
Ijin akses dapat diberikan menggunakan keyword ALL, jika semua ijin akses akan diberikan. Tetapi jika hanya beberapa statemen ijin akses saja, Anda dapat menyebutkan langsung statemen ijin akses tersebut. Object permissions :
Keterangan : - Privileges adalah keyword opsional yang dapat Anda sertakan pada SQL- 92 - Permission adalah ijin akses yang diberikan. Daftar ijin akses telah dijelaskan pada bagian sebelumnya. Jika ijin akses yang diberikan lebih dari satu maka dipisahkan dengan tanda koma. Ijin akses ini disertai dengan nama-nama objek database yang diberikan. Objek database tersebut dapat berupa tabel, view, stored procedure, extended procedure, dan lain-lain. - Column adalah nama-nama kolom yang diijinkan untuk diatas sesuai dengan ijin akses yang diberikan pada daftar ijin akses tersebut. - Table adalah nama-nama tabel yang diijinkan untuk diakses. - View adalah nama-nama view yang diijinkan untuk diakses. - Stored procedure adalah nama-nama stored procedure yang diijinkan untuk dieksekusi (dijalankan). - Extended procedure adalah nama-nama eksetended prosedur yang diijinkan untuk dijalankan. - User defined function adalah nama-nama user defined function (fungsi) yang diijinkan untuk dieksekusi. - WITH GRANT OPTION adalah untuk menspesifikasikan bahwa user yang diberi ijin akses tersebut dapat memberikan ijin aksesnya kepada user yang lain. - AS{group | Role } menspesifikasikan optional nama dari user account dalam database pada group atau role untuk mengeksekusi statemen GRANT. Pembahasan mengenai Role akan disampaikan pada bagian selanjutnya. Untuk memahami bagaimana penggunaan sintaks di atas, anda akan mencoba beberapa contoh penggunaan dari statemen GRANT. Langkah pertama menjalankan SQL Query Analyser dan melakukan koneksi dengan user sa. Setelah berhasil melakukan koneksi dan menjalankan SQL Query Analyser, selanjutnya anda lakukan koneksi dengan user tamu melalui menu File kemudian pilih Connect. Setelah anda melakukan koneksi dengan dua user tersebut, pada window SQL Query Analyser akan terdapat dua buah window SQL Editor,. Satu buah window untuk user sa dan satu buah lainnya untuk user tamu.
Setelah kedua window SQl Editor tersebut muncul, Anda dapat melakukan eksekusi pernyataan T-SQL untuk masing-masing user. Anda dapat mengecek apakah user tamu yang baru saja anda gunakan untuk berhubungan dengan database sudah dapat mengakses data pada database MyData atau belum dengan mengeksekusi statemen T-SQL berikut :
Ketika anda mengeksekusi pernyataan di atas, SQL Server akan menampilkan pesan error. Hal ini terjadi karena user tamu tidak mempunyai ijin akses terhadap tabel mata kuliah. Masukkan statemen berikut pada window SQL Editor user sa untuk memberikan ijin akses pada user tamu
Setelah Anda mengeksekusi pernyataan diatas, kemudian anda mencoba mengeksekusi statemen SELECT untuk user tamu seperti statemen sebelumnya, maka SQL server akan mengumpulkan hasilnya. Contoh diatas adalah contoh pemberian ijin akses dengan satu ijin akses. Anda dapat memberikan beberapa ijin akses sekaligus seperti yang telah disampaikan sebelumnya dengan menuliskannya dengan dipisahkan tanda koma. Statamen berikut adalah statemen untuk memberikan ijin akses SELECT dan UPDATE untuk tabel dosen.
Setelah mengeksekusi statemen dicatat, user tamu akan mempunyai ijin akses untuk melihat dan memodifikasi data pada tabel dosen. Untuk mencoba hasil eksekusi dari statemen di atas, Anda dapat melakukan retrieving data dengan statemen SELECT berikut:
Selanjutnya Anda juga dapat melakukan modifikasi data pada table tersebut dengan menggunakan user tamu. Contoh-contoh diatas adalah contoh penggunaan statetemen GRANT untuk memberikan ijin akses. Selaint itu, anda juga dapat memberikan ijin akses statemen, Contoh pemberian ijin akses statemen adalah pada pernyataan T-SQL berikut :
Dengan mengeksekusi pernyataan T-SQL di atas maka user tamu akan mempunyai ijin untuk membuat tabel pada database MyData. Melalui window SQL editor user tamu Anda dapat menjalankan statemen berikut untuk membuat table sample kemudian mengisi tabel tersebut dengan beberapa kata.
Setelah menjalankan statemen diatas, Anda dapat memasukkan data dengan menggunakan statemen insert. Eksekusi statemen berikut untuk memasukkan data
Setelah anda selesai mengeksekusi pernyataaan-pernyataan di atas, Anda dapat mengecek hasilnya dengan menjalankan statemen SELECT. Percobaan 7 : Mencabut Ijin Akses Ijin akses yang telah diberikan oleh seseorang uses kepada user yang lain dapat dicabut kembali oleh user yang memberikan hak akses. Kapan saja user tersebut ingin mencabutnya maka dengan statemen REVOKE ijin akses tersebut dapat dicabut tanpa harus konfirmasi dengan user yang bersangkutan. Statemen REVOKE menggunakan sintaks yang sama dengan statemen GRANT. Perbedaannya adalah kalau pada statemen GRANT menggunakan keyword TO sedangkan pada statemen REVOKE menggunakan keyword FROM. Pada bagian sebelumnya anda telah memberikan ijin akses SELECT pada tabel mata kulliah untuk user tamu. Statemen berikut adalah statemen untuk mencabut ijin akses tersebut.
Setelah ini anda mengeksekusi statemen di atas, maka ijin akses SELECT pada tabel mata kuliah untuk user tamu telah dicabut. Untuk membuktikannya anda dapat menjalankan statemen SELECT pada table mata kuliah menggunakan user tamu. SQL server akan menampilkan pesan error seperti pada gambar berikut : Dengan cara yang sama anda dapat menggunakan statemen REVOKE untuk mencabut ijin akses statemen. Contoh berikut adalah contoh bagaimana mencabut ijin akses statemen CREATE TABLE dari user tamu.
Setelah statemen dia atas dieksekusi, user tamu tidak bisa lagi membuat table pada database MyData. Jika ini dilakukan maka SQL Server akan menampilkan pesan error yang sama.
Percobaan 8 : Buat database menggunakan T-SQL dengan parameter lengkap ! (Ketentuan bebas).
Percobaan 9 : Dari query Analyzer buatlah script untuk membangun sebuah database, kemudian simpan dengan nama created.sql dengan ketentuan sebagai berikut : - Nama database : unirow_XXX - Nama Primary data : unirow_XXX_DATA - Ukuran awal = 20 Mb - Ukuran maksimal = 50 Mb - Ukuran perkembangan file = 2 Mb - Nama log : unirow_XXX_LOG dengan nilai – nilai parameter sama dengan diatas. Catatan : ( X = tiga digit terakhir npm )