Dokumen tersebut membahas tentang keamanan database, termasuk pengertian keamanan database, komponen-komponen keamanan dalam SQL Server seperti principal, securable, dan permission, serta cara membuat login, user, dan menetapkan hak akses user untuk database.
1. Riza Muhammad Nurman Thursday, March 1, 2018
Click to edit Master title style
BAB 5
DBA
FACULTY
Riza Muhammad Nurman
DATABASE ADMINISTRATION
Keamanan Database
Twitter : https://twitter.com/rhyzone
SlideShare : https://slideshare.net/rizaman
2. Riza Muhammad Nurman Thursday, March 1, 2018
Click to edit Master title styleCONTENT
• Pengertian Keamanan
• Komponen-komponen Dalam SQL Server Database
• Pembuatan Login Dan User
• Pembuatan Users
• Pengaturan Tugas
3. Riza Muhammad Nurman Thursday, March 1, 2018
Click to edit Master title stylePENGERTIAN KEAMANAN
• Keamanan merupakan suatu proteksi
terhadap pengerusakan data dan
pemakaian data oleh pemakai yang
tidak punya kewenangan
• Tujuan dari keamanan adalah
melindungi data dari ancaman yang
disengaja atau tidak disengaja
tehadap akses dan integritas
Keamanan pada database berhubungan dengan situasi-situasi:
• Pencurian dan penipuan (theft and fraud)
• Kehilangan kerahasiaan (loss of confidentiality)
• Kehilangan kebebasan (loss of privacy)
• Kehilangan integritas (loss of integrity)
• Kehilangan ketersediaan (loss of availability)
4. Riza Muhammad Nurman Thursday, March 1, 2018
Click to edit Master title styleTindak Penyalahgunaan
TIDAK DISENGAJA
• Kerusakan selama proses transaksi
• Anomali yang disebabkan oleh akses
database yang konkuren
• Anomali yang disebabkan oleh
pendistribusian data pada beberapa
komputer
• Logika error yang mengancam
kemampuan transaksi untuk
mempertahankan konsistensi database
DISENGAJA
• Pengambilan data / pembacaan data oleh
pihak yang tidak berwenang.
• Pengubahan data oleh pihak yang tidak
berwenang.
• Penghapusan data oleh pihak yang tidak
berwenang
5. Riza Muhammad Nurman Thursday, March 1, 2018
Click to edit Master title styleTingkat Pada Keamanan Database
Fisikal
Manusia
Sistem
Operasi
Sistem
Database
lokasi-lokasi dimana terdapat sistem
komputer haruslah aman secara fisik
terhadap serangan perusak.
wewenang pemakai harus
dilakukan dengan berhati-
hati untuk mengurangi
kemungkinan adanya
manipulasi oleh pemakai
yang berwenang
Kelemahan pada SO ini
memungkinkan pengaksesan data
oleh pihak tak berwenang, karena
hampir seluruh jaringan sistem
database menggunakan akses
jarak jauh.
Pengaturan hak pemakai yang baik.
6. Riza Muhammad Nurman Thursday, March 1, 2018
Click to edit Master title styleAuthorization
• Otorisasi adalah kontrol yang melekat
dalam sistem manajemen data yang
membatasi akses terhadap data dan
tindakan-tindakan yang dapat
dilakukan oleh user
• Kendali otorisasi (kontrol akses)
dapat dibangun dengan 2 fungsi:
– Mengendalikan sistem atau obyek
yang dapat diakses.
– Mengendalikan bagaimana pengguna
menggunakannya
Otorisasi terhadap database merupakan
metode pembatasan bagi pengguna untuk
mendapatkan model database yang sesuai
dengan kebutuhan perorangan
Subyek : user atau program.
Obyek : Database table, view,
application, procedure, atau obyek
lainnya yang dibuat di dalam sebuah
sistem.
7. Riza Muhammad Nurman Thursday, March 1, 2018
Click to edit Master title styleLevel Pengamanan Database Relasional
Level Deskripsi
Relasi pengguna diperbolehkan atau tidak diperbolehkan mengakses
langsung suatu relasi.
View pengguna diperbolehkan atau tidak diperbolehkan mengakses
data yang terdapat pada view.
Read Authorization pengguna diperbolehkan membaca data, tetapi tidak dapat
memodifikasi.
Insert Authorization pengguna diperbolehkan menambah data baru, tetapi tidak
dapat memodifikasi data yang sudah ada.
Update Authorization pengguna diperbolehkan memodifikasi data, tetapi tidak dapat
menghapus data.
Delete Authorization pengguna diperbolehkan menghapus data.
8. Riza Muhammad Nurman Thursday, March 1, 2018
Click to edit Master title styleOtorisasi Tambahan Untuk Modifikasi
Authorization Deskripsi
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.
9. Riza Muhammad Nurman Thursday, March 1, 2018
Click to edit Master title styleVIEW dan ENKRIPSI
• Tabel View adalah hasil yang dinamik dari satu atau lebih operasi relasi yang
beroperasi pada relasi dasar untuk menghasilkan relasi lainnya
• Enkripsi adalah suatu pengodean atau pengacakan data dengan tujuan orang
yang tidak berhak tidak bisa membacanya.
• Encryption biasa digunakan jika melalui jalur komunikasi.
• Implementasi enkripsi:
Satu kunci (Contoh DES-Data Encryption Standard)
Dua kunci (Contoh SSL –Secure Socket Layer)
10. Riza Muhammad Nurman Thursday, March 1, 2018
Click to edit Master title styleKOMPONEN-KOMPONEN DALAM SQL SERVER DATABASE
• DBA dapat memberikan berbagai jenis hak akses untuk pegguna yang berbeda
untuk level otorisasi pengguna –pengguna
Pelaku, Penjamin, dan Pemberi Izin
SQL Server menyediakan sekumpulan komponen, yaitu principals(Pelaku atau yang
mengakses), securables (Penjamin atau yang menyediakan akses), dan permissions
(Pemberi izin atau yang mengatur), dimana bisa digunakan untuk pemberian
keamanan pada level-level yang berbeda.
Principals
Entity-entity logika yang butuh akses sumber-sumber SQL Server.
Entity-entity tersebut adalah account-account komputer, login, dan user account yang
digunakan untuk mengakses data dalam database.
11. Riza Muhammad Nurman Thursday, March 1, 2018
Click to edit Master title style3 LEVEL PRINCIPALS
WINDOWS
Untuk level ini, principals yang digunakan
adalah account-account komputer yang
digunakan untuk masuk ke komputer
dimana didalamnya telah terinstall SQL
Server.
Principal-principal windows yang ada
didalam Windows, yaitu
• Local user account : sebuah account
digunakan untuk masuk ke sebuah
komputer
• Domain user account : sebuah account
digunakan untuk masuk ke sebuah
komputer pada jaringan dimana
username dan password diverifikasi
oleh Server Domain.
• Windows group : sebuah kumpulan
dari account-account user dimana
mempunyai kewenangan dan izin
SERVER
Account-account yang digunakan untuk masuk ke sebuah
instansi SQL Server. Principal ini terdiri dari
a. SQL Server login : sekumpulan user yang diberi
kepercayaan untuk disimpan dan diotentifikasi oleh SQL
server saat sebuah user koneksi ke server database
b. SQL Server role : sekumpulan login-login yang memiliki
izin
DATABASE
Account-account digunakan untuk mengakses sebuah database
dalam SQL Server.
Principal pada level database ini ada 3 yaitu:
• Database user : login account yang memiliki izin untuk
mengakses sebuah database
• Database role : sebuah kumpulan user-user database
dimana mempunyai kesamaan kewenangan
• Application role : sebuah peran yang digunakan untuk
mengakses database sebagai penggunaan aplikasi tertentu.
12. Riza Muhammad Nurman Thursday, March 1, 2018
Click to edit Master title styleSECURABLE
Objek-objek dimana yang diakses oleh principal
• Level Window : terdiri dari file-file dan kunci registrasi-registrasi dimana SQL Server
menggunakan
• Level SQL Server : terdiri dari beberapa hierarki, yang disebut scope. Scope-scope itu yaitu
sebagai berikut :
• Scope Server: terdiri dari login-login, database-database, dan endpoint-endpoint yang dibuat
pada level server
• Scope Database: terdiri dari objek-objek, yaitu user-user database, role-role, role aplikasi,
assembly-assembly, full-text catalog, schema-schema, dan DDL event, dimana itu semua dibuat
pada level database
• Scope Schema: terdiri dari objek-objek database, yaitu tabel-tabel, view-view, fungsi-fungsi,
prosedur-prosedur, dan tipe-tipe yang terdapat dalam schema.
13. Riza Muhammad Nurman Thursday, March 1, 2018
Click to edit Master title stylePERMISSION
• DBA dapat mengatur hak akses dengan menggunakan OBJECT
EXPLORER atau mengeksekusi perintah GRANT, REVOKE, atau
DENY
Hak Izin Deskripsi
SELECT Memilih baris dari objek manapun dalam schema atau tabel
ALTER Mengubah setiap objek di dalam schema atau tabel
TAKE OWNERSHIP Mengambil kepemilikan dari schema
CONTROL Meminta kontrol penuh terhadap tabel
14. Riza Muhammad Nurman Thursday, March 1, 2018
Click to edit Master title stylePEMBUATAN LOGIN DAN USER
1. Koneksi ke SQL Management Studio dengan
login default username: SA dan password
yang telah dibuat.
2. Object explorer dan pilihlah SECURITY
kemudian klik kanan pilihlah NEW-->LOGIN
3. Jendela Login-New akan konfigurasi, yaitu
Login name untuk username, otentifikasi
menggunakan SQL Server otentifikasi ( pilih
Windows otentifikasi jika ingin login sesuai
login windows), masukkan password yang
diinginkan
15. Riza Muhammad Nurman Thursday, March 1, 2018
Click to edit Master title stylePEMBUATAN USER
• Pembuatan User dalam Object explorer di
SQL Server Management Studio. Saat
pembuatan user database harus adanya
pemetaan database user ke login dimana
untuk akses ke server
• Contoh: server database Adventure Works
mempunyai 3 database sedangkan Robert
membutuhkan akses ke dua database dari
database-database yang ada. Maka, DBA
membuatkan account user yang terpisah
pada kedua database. Kedua account user
harus dipetakan ke Login Robert.
Langkah - Langkah
1. Koneksi ke SQL Management Studio
dengan login default username: SA dan
password yang telah dibuat.
2. Setelah ke Jendela SQL Server
Management Studio pilihlah Object
explorer. Dan pilihlah database
Adventure Works. Di database Adventure
Works, pilihlah security dan klik kanan,
pilihlah NEW USER
16. Riza Muhammad Nurman Thursday, March 1, 2018
Click to edit Master title stylePEMBUATAN USER - 2
Setelah muncul jendela New User, isilah User
name , Login name, dan Schema
Memilih login yang telah dibuat sebelumnya
Pilihlah Schema dan klik tombk OK jika
sudah selesai
17. Riza Muhammad Nurman Thursday, March 1, 2018
Click to edit Master title stylePENGATURAN TUGAS
• Tugas atau role adalah objek database dimana objek
tersebut telah diberikan sekumpulan hak ijin
• Jenis-Jenis Roles dalam SQL Server adalah
1. Fixed database
2. User-defined database roles
3. Application roles
18. Riza Muhammad Nurman Thursday, March 1, 2018
Click to edit Master title styleFixed Database
• Didefinisikan pada level database dan ada pada setiap database
Hak Akses Deskripsi
db_accessadmin menambah atau menghilangkan user database, group, dan roles
db_backupoperator backup database
db_datareader membaca data dari berbagai tabel
db_datawriter menambah, mengubah, atau menghapus data dari berbagai tabel
db_ddladmin menambah, memodifikasi, atau menghilangkan objek database
db_denydatareader membatasi pembacaan data dari berbagai tabel
db_denydatawriter membatasi dari perubahan data dari berbagai tabel
db_owner melakukan aktifitas role database
db_securityadmin mengubah role database, aplikasi dan membuat schema
public menjaga standar hak izin
19. Riza Muhammad Nurman Thursday, March 1, 2018
Click to edit Master title styleUser-defined Database Roles & Application Roles
• User-defined database roles
– Membuat role database ke dalam group beberapa user dan menetapkan hak akses.
• Application roles
– Suatu database principal yang membolehkan sebuah aplikasi untuk mengeksekusi hak
istimewa.
– Contoh: Adventure Works menggunakan sebuah aplikasi local dimana menghasilkan slip
gaji untuk semua karyawan. Aplikasi ini membutuhkan akses ke SQL Server sehingga
DBA membuat suatu role terhadap aplikasi tersebut. Saat aplikasi membutuhkan untuk
akses data dari server database, akan memerlukan otentifikasi dari role aplikasi.
– Beda dengan role database, role ini terdiri dari ketidakadaan anggota dan ketidak aktif
secara standar serta bekerja pada mode otentifikasi Windows dan SQL Server.
20. Riza Muhammad Nurman Thursday, March 1, 2018
Click to edit Master title stylePenetapan Role Kepada User Database
• Untuk memberi hak izin kepada sebuah
user, DBA melakukan role kepada sebuah
user atau membolehkan sebuah user untuk
menjadi user atau mengijinkan sebuah user
untuk menjadi anggota.
• Hal tersebut bisa dilakukan dengan
menkonfigurasi properties dari user di
Database user
• Setiap role dilakukan berdasarkan dari kumpulan hak izin akses
21. Riza Muhammad Nurman Thursday, March 1, 2018
Click to edit Master title stylePenetapan Hak Izin
• Beberapa user hanya membutuhkan dalam membaca data, sementara user-
user lain membutuhkan perubahan atau menambah informasi dari database
• Tugas DBA adalah menetapkan hak akses seorang user atau role
• Pemberian hak izin untuk sebuah role dilakukan pada semua user dalam role
itu sendiri
• DBA menentukan hak izin dalam beberapa level:
– level server
– level database
– level schema
22. Riza Muhammad Nurman Thursday, March 1, 2018
Click to edit Master title stylePemberian Hak Izin untuk Level Server
• Dalam level server, DBA bisa memberikan hak izin untuk login
• Contoh: User Robert diberikan hak untuk membuat database
• Beberapa hak izin yang umum ditetapkan pada level server yaitu ALTER
ANY DATABASE, ALTER ANY ENDPOINT, CREATE ANY DATABASE, CREATE
ENDPOINT, SHUTDOWN, VIEW ANY DATABASE, VIEW ANY DEFINITION,
VIEW SERVER STATE
Use Master
GRANT CREATE ANY DATABASE
TO Robert
23. Riza Muhammad Nurman Thursday, March 1, 2018
Click to edit Master title stylePenetapan Hak Izin pada Level Database
• Level database untuk user-user melakukan aktivitas seperti pembuatan
sebuah schema atau implementasi service broker
• DBA dapat menetapkan hak izin pada keamanan level database, seperti
user-user dan schema-schema. Beberapa level database yang mempunyai
hak izin yaitu CREATE SCHEMA, CREATE SERVICE, CREATE ASYMMETRIC KEY,
CREATE SYMMETRIC KEY, CREATE CERTIFICATE, CREATE CONTRACT, CREATE
QUEUE, CREATE ROLE, CREATE MESSAGE TYPE, CREATE FULL TEXT CATALOG,
CREATE ASSEMBLY, ALTER ANY ASSEMBLY, ALTER ANY CONTRACT, ALTER
ANY DATABASE DDL TRIGGER, BACKUP DATABASE.
24. Riza Muhammad Nurman Thursday, March 1, 2018
Click to edit Master title stylePenetapan Hak Akses melalui Object Explorer
• Pada jendela Object explorer pada
SQL Management Studio, Contoh
pilihlah Database Advendture Works.
Pastikan User Robert sudah ada di
SECURITYUSER.
• Klik tabel dan muncul tabel-tabel
dalam database Adventure Works.
Pilihlah satu tabel yang akan diberi
hak akses kepada User Robert.
Setelah itu klik kanan pada tabel
pilihlah Properties.
25. Riza Muhammad Nurman Thursday, March 1, 2018
Click to edit Master title stylePenetapan Hak Akses melalui Object Explorer - 2
• Dari Jendela properties Tabel
Person.Address dikonfigurasi
halaman permissions. Dengan klik
Add untuk memilih user Robert yang
diberi izin untuk mengakses dan
melakukan aktivitas dalam tabel
Person.Address.
• Ada beberapa permission yang bisa
diberi akses untuk user Robert.
Pilihlah sesuai dengan level user
dalam organisasi. Klik OK jika sudah
selesai
26. Riza Muhammad Nurman Thursday, March 1, 2018
Click to edit Master title stylePemberian Izin
• Perintah untuk memberikan Authorization menggunakan SQL :
• GRANT : memberikan wewenang kepada pemakai.
• Sintaks:
• Contoh:
GRANT <priviledge list>
ON <nama relasi/view>
TO <pemakai>
Privilege List
GRANT SELECT ON S TO BUDI
GRANT SELECT,UPDATE
(STATUS,KOTA) ON S TO
ALI,BUDI
27. Riza Muhammad Nurman Thursday, March 1, 2018
Click to edit Master title stylePengambilan Hak Izin
• Suatu User tidak selamanya hak izin yang diberikan tetap. Kadang-kadang ada
perubahan managemen, perubahan jabatan, atau perubahan dba menyebabkan
diambilnya hak izin suatu user. Istilah di SQL Server adalah REVOKE
• REVOKE : mencabut wewenang yang dimiliki oleh pemakai.
• Sintaks:
• Contoh:
REVOKE <priviledge list>
ON <nama relasi/view>
FROM <pemakai>
REVOKE SELECT ON S TO BUDI
REVOKE SELECT,UPDATE
(STATUS,KOTA) ON S TO ALI,BUDI
28. Riza Muhammad Nurman Thursday, March 1, 2018
Click to edit Master title stylePengambilan Hak Izin - 2
• Ke Jendela SQL Management Studio
dan login kemudian ke Database
AdventureWorks. Pilihlah Tabel
Person.Address. Klik kanan pilih
Properties
• Halaman permission, User Robert
diklik Remove untuk mengambil hak
izin dalam tabel Person.Address atau
menghilangkan tanda centang pada
grant sesuai dengan permission