JOBSHEET 06
Keamanan pertama SQL Server adalah otentikasi user. Sebelum ada pengaturan keamanan lainnya
dapat diperiksa, SQL Server perlu memverifikasi identitas pengguna. Otentikasi adalah proses
mengidentifikasi pengguna dan memverifikasi identitas mereka. Otentikasi SQL Server dapat
dilakukan dengan beberapa cara yaitu :
- Otentikasi Login Windows
- Otentikasi Login SQL Server
1
MODUL 5 – EXPORT IMPORT
Hasil:
Catatan
Pada tahap ini Anda dapat membuat user windows baru terlebih dahulu selain dari user windows
yang aktif digunakan oleh SQL Server. Anda dapat membuat user baru dengan Administrative
Tools yaitu Computer Management. Perhatikan ilustrasi dibawah ini.
2
MODUL 5 – EXPORT IMPORT
5. Tampilkan semua login yang ada pada SQL Server Anda dengan kode di bawah ini
6. Buatlah SQL Server Login sesuai dengan nama Anda masing-masing seperti kode di bawah ini
3
MODUL 5 – EXPORT IMPORT
7. Untuk membuktikan pembuatan login SQL Server sudah berhasil dilakukan, maka pada object
explorer pilih menu Connect → Database Engine →Pilih Jenis Otentikasi SQL Server → Masukkan
username dan password sesuai yang sudah dibuat pada poin 6.
Hasil:
8. Buatlah SQL Server Login dengan GUI SSMS dengan cara memilih menu pada object
explorer→folder Security→klik kanan pada folder Logins→new Login→pilih jenis Login→ Tulis
username dan password sesuai dengan kebutuhan.
4
MODUL 5 – EXPORT IMPORT
9. Tampilkan semua login yang ada paka SQL Server sesuai poin 5. Pastikan, apakah login yang baru
dibuat sudah muncul.
Hasil:
5
MODUL 5 – EXPORT IMPORT
Hasil:
11. Tampilkan List Semua SQL Server Login. Cek perbedaan login sebagai HRApp dibangingkan yang
lain?
Hasil:
12. Lakukan penghapusan LOGIN dengan cara seperti kode di bawah ini :
Hasil:
6
MODUL 5 – EXPORT IMPORT
13. Jika DROP LOGIN tidak dapat dilakukan, hal tersebut dikarenakan user sedang login dalam sistem
SQL Server. Session dari user tersebut harus diberhentikan secara paksa terlebih dahulu. CARA
INI MERUPAKAN CARA YANG TIDAK DIREKOMENDASIKAN TERLEBIH JIKA
ADA DATABASE YANG BERASOSIASI DENGAN USER TERSEBUT. Kode T-SQL
berikut merupakan contoh untuk mematikan session user yang aktif. Sesuaikan urutan sesi dengan
informasi yang ada pada sys.dm_exec_sessions. Setelah proses “kill session”, maka DROP LOGIN
dapat dilakukan.
1.3 Otorisasi Login & Token User dan Mengkonfigurasi Pengguna dengan
Password
Otorisasi adalah suatu penugasan yang mengijinkan hal apa saja yang bisa dilakukan seseorang yang
telah diotentikasi. Otorisasi dapat diimplementasikan dengan pernyataan GRANT, DENY, dan
REVOKE. Hanya seorang database user yang berhak mengakses suatu database. Terdapat user default
yang akan muncul pada setiap database yaitu dbo dan guest. dbo adalah user khusus yang memberikan
ijin terhadap semua aktifitas pada database. User khusus termasuk “sa” telah dipetakan pada setiap
database. dbo tidak dapat dihapus dan selalu muncul pada database. Database owner dapat dimodifikasi
dengan pernyataan ALTER AUTHORIZATION. Sedangkan Akun guest tidak secara otomatis
mendapatkan ijin akses database Guest dapat diaktifkan (enable) ataupun di non aktifkan (disable).
Terdapat penyataan berhubungan dengan guest yaitu REVOKE untuk mencegah akses terhadap
database dan GRANT untuk mengaktifkan akun agar dapat mengakses database.
7
MODUL 5 – EXPORT IMPORT
Hasil:
2. Lakukan pula langkah 1 untuk akun yang lain tapi dengan GUI SSMS. Caranya expand database
MarketDev pada object explorer→klik folder security→klik kanan pada folder Users→pilih new
user→Isikan username dan password yang diinginkan.
3. Lakukan pengecekan list database user untuk mengetahui user siapa saja yang berhak mengakses
database tersebut dengan kode di bawah ini
Hasil:
8
MODUL 5 – EXPORT IMPORT
4. Untuk memastikan, coba klik connect pada object explorer dan login menggunakan indentitas
HRApp. Maka Database MarketDev akan muncul karena sudah mendapatkan ijin.
2. Lihat list user yang ada pada database ModeDB dengan kode di bawah ini
Hasil:
9
MODUL 5 – EXPORT IMPORT
3. Untuk memastikan bahwa XRayApp adalah user yang dibuat untuk mengakses database ModeDB
tanpa login SQL Server terlebih dahulu, maka coba login sebagai XRayApp pada master seperti
kode di bawah ini. Catat dan jelaskan apa output yang dihasilkan!
Hasil:
10
MODUL 5 – EXPORT IMPORT
Masalah yang umum terjadi jika bekerja dengan beberapa server. User yang mengakses suatu aplikasi
melalui web memungkinkan adanya identitas pengguna dari windows lain. Aplikasi melaksanakan
tugas contohnya : Seorang manajer bank dapat mengakses DELETE BANK ACCOUNT, tetapi seorang
teller tidak (privilege rendah). Aplikasi perlu terhubung ke database untuk mengambil data organisasi.
Jika server database berada pada server lain, Maka terjadi masalah ketika identitas SQl Server dengan
privilege rendah akan menemui masalah double-hop karena tindakan default WINDOWS. Sistem
memungkinkan impersonation tapi tidak delegation.
Ketika login SQL Server dibuat (create). Login mengalokasikan nama dan ID Keamanan (IDs). Ketika
database di back up dan restore ke server lain, maka database akan ada di server lain tersebut, tetapi
tidak ada login yang cocok. Untuk itu database administrator sering membuat login baru sebagai user
dalam database tersebut dan kemudian terjadi failed login (Username dan Password sudah disamakan
tetapi secara default SQL Server akan mengalokasikanya ke IDs yang baru.
11
MODUL 5 – EXPORT IMPORT
2. Lakukan query berikut ini untuk melakukan proses restore database Mismatch pada KONEKSI 1.
Sesuaikan path file dengan komputer lokal Anda.
Catatan:
Perhatikan query dari file 00.setup.sql baris ke 526. Pada baris tersebut dilakukan proses
backup database Mismatch.
12
MODUL 5 – EXPORT IMPORT
3. Lakukan query berikut untuk mengetahui user yang memiliki akses terhadap database Mismatch.
Hasil:
Hasil:
6. Hasil query tersebut akan menghasilkan user dengan nama TestUser yang dapat mengkases
server SQL Server.
13
MODUL 5 – EXPORT IMPORT
7. Selanjutnya, buat koneksi baru server SQL Server. Pada Object Explorer, Pilih Connect →
Database Engine.
8. Pilih SQL Server Authentication pada bagian Authentication. Kemudian isikan username dan
password dari TestUser. Koneksi ini akan kita sebut sebagai KONEKSI 2.
14
MODUL 5 – EXPORT IMPORT
Hasil:
10. Pada tahap ini kita telah miliki 2 koneksi ke server SQL Server.
a. KONEKSI 1 merupakan koneksi dengan menggunakan Windows Login
b. KONEKSI 2 merupakan koneksi dengan menggunakan SQL Server Authentication
dengan user ernama TestUser.
15
MODUL 5 – EXPORT IMPORT
Hasil:
12. Hasil query akan menghasilkan error karena user TestLogin tidak memiliki akses ke database
Mismatch. Mengapa demikian? Padahal jika diperhatikan pada angkah ke-3, TestUser sudah
terdaftar sebagai database principal pada database Mismatch. Dengan kata lain, seharusnya,
TestUser dapat mengakses database Mismatch.
13. Lakukan query berikut pada KONEKSI 1. Query tersebut akan mencoba membuat ulang akses
untuk TestUser agar dapat mengakses database Mismatch.
16
MODUL 5 – EXPORT IMPORT
Hasil:
14. Jika dijalankan, maka query pada angkah ke-13 akan menghasilkan error ‘TestUser’ already
exists in current database. Mengapa demikian?
15. Kita perlu melakukan pengecekan pada SID. Untuk melihat SIDs pada tingkat server ataupun
database, lakukan query dibawah ini pada KONEKSI 1. Perhatikan kolom SID.
Hasil:
16. Nilai SID yang berbeda menandakan identifikasi user yang berbeda meskipun dengan nama yang
sama.
17
MODUL 5 – EXPORT IMPORT
17. Salah satu cara untuk mengatasi perbedaan SIDs dapat dilakukan dengan command ALTER USER
pada database Mismatch. Lakukan query berikut pada KONEKSI 1.
Hasil:
18
MODUL 5 – EXPORT IMPORT
19. Untuk memastikan SID sudah dapat digunakan, lakukan kembali langkah ke-11
19
MODUL 5 – EXPORT IMPORT
Database yang terkandung adalah database yang diisolasi dari database lain dan dari contoh
SQL Server yang menghosting database. SQL Server membantu pengguna untuk mengisolasi
database mereka dari instance dengan 4 cara.
20