Admin Database



Admin Database

A.    Keamanan Database
 Database Security atau keamanan database adalah pengamanan terhadap objek database.
Keamanan database  berfungsi untuk memastikan user memiliki hak akses pada objek database.
   >    Permission berfungsi untuk memberikan hak akses user ke objek database.
   >   Login atau logon adalah proses dalam mengakses sistem komputer dengan menggunakan credential user.
   >    User account digunakan untuk memperesentasikan user dalam  system elektronik.

B.     Level Keamanan
 Keamanan pada SQL Server dibagi menjadi dua , yaitu : level server dan level database.
1.      Level Server
Kemanan lever server memiliki tiga metode login yang dapat digunakan, yaitu :
·         Windows  User Login
·         Memeber pada windows user group
·         SQL Server Login
User yang terdaftar pada role sysadmin memiliki akses penuh pad setiap server, database, dan objek. Role adalah peran seorang user dalam sebuah database atau server.

Windows Authentication
Windows Security adalah keamanan yang digunakan SQL Server dengan menggunakan kemanan system windows. Pada windows service accounts tersedia tiga tipe account yang dapat digunakan, yaitu :
·         Local user account     : hanya pada local machine.
·         Local system account : account tertinggi pada SQL Server.
·         Domain user account : dapat menggunakan windows account.
Authentication adalah tingkatan membuktikan atau mengkonfimasi identitas user. Windows Authentication adalah metode login dengan menggunakan windows account.

SQL Authentication
Mixed mode dapat terhubung dengan SQL Server menggunakan Windows Authentication dan SQL Server Authentication. SQL Server login memiliki akun dan password yang tersimpan pada SQL Server. Akun yang digunakan sebagai administrator disebut sa account.
Server Role
Ø  Server role pada SQL Server ada tiga, yaitu :
·         Fixed role :
   >    Role yang telah disediakan oleh SQL Server untuk digunakan.
   >    Grant permission tidak dapat diubah.
·         Public role :
   >    Role yang termasuk ke dalam fixed role.
   >    Setiap user secara otomatis bagian dari public role dan tidak dapat dihapus.
   >    Role yang memiliki level permission paling minim.
·         User-defined role :
   >    Role yang dapat diubah grant permisionnya sesuai dengan kebutuhan.

Ø  Macam-macam role pada fixed server role, sebagai berikut :
·        Bulkdomain               : dapat melakukan insert pada jumlah besar.
·         Dbcreator                   : dapat create, alter, drop, dan restore database.
·         Diskadmin                 : dapat create, alter, dan drop disk file.
·         Processadmin            : dapat menghentikan proses pada SQL Server.
·         Securityadmin           : dapat mengelola login untuk server.
·         Serveradmin      : dapat konfigurasi pengaturan server, menambahkan  pencarian full-text dan shutting down server.
·        Setupadmin          : dapat konfigurasi lingked server, menambahkan stored procedure, dan melakukan startup procedure.
·         Sysadmin                   : dapat melakukan apapun di dalam SQL Server.

Guest Login
User yang belum diberikan hak akses ke database di sebut sebagai Guest User. Guest user tidak terbentuk ketika database dibuat, tetapi perlu menambahkannya. Transact-SQL untuk menambahkan Guest user :
EXEC sp_adduser ‘GUEST’

2.      Level Database
User diarahkan ke database yang telah ditentukan. Permission untuk user ditambahkan ke dalam database. Objek permission untuk user ada tiga, yaitu :
·         Grating permission          : memiliki hak akses ke dalam objek.
·         Denying permission         : menimpa grant permission.
·         Revoking permission        : menghapus permission.

Role pada database ada tiga, yaitu :
·         Fixed database role
·         Usr-defined role
·         Public role

Role memiliki permission ke objek database. User dapat dimasukkan ke dalam satu atau lebih fixed database rolr dam user-defined role. Macam-macam role pada fixed database role :
·   db_accesadmin           : user memiliki otorisasi untuk mengakses database, tetapi tidak untuk mengelolanya.
·  db_backupoperator     : mengizinkan user untuk melakukan backup, checkpointm dan DBCC commands, tapi tidak untuk restore.
·    db_datareader              : mengizinkan user untuk read semua data di dalam database.
·    db_datawriter              : mengizinkan semua user untuk write semua data pada database.
·    db_ddladmin                :  user memiliki otoritasi dalam perintah DDL.
·   db_denydatareader        : memberikan permission ke user untuk read dari tabel manapun dalam database.
·   db_denydatawriter        : memblok user dari modifikasi data pada tabel manapun dalam database.
·   db_owner                 : ini merupakan role spesial yang memiliki semua permission dalam database.      
·   db_securityadmin       : memberikan permission ke user untuk mengelola keamanan level.

Memahami Permission Objek
Permission objek adalah permission yang mengizinkan user untuk melakukan aksi pada objek database. Contoh : tabel, stored procedure, dan view. Beberapa permission objek yang ada :
·         Select                           : hak untuk select data.
·         Insert                           : hak untuk insert data.
·         Update                         : hak untuk memodifikasi data yang telah ada.
·         Delete                          : hak untuk mendelete data.
·         DRI (Reference)          : hak untuk membuat foreign key dengan DRI.
·         Execute                        : hak untuk eksekusi stored procedure atau fungsi.

C.     Backup dan Restore Database
 Backup dan restore database berfungsi untuk mengurangi resiko hilangnya data yang diakibatkan oleh kerusakan komputer. Model Recovery pada SQL Server ada tiga, yaitu :
·         Simple Recovey
   >    Transaksi log ter truncate sehingga pilihan recovery menjadi terbatas.
   >    Menurunkan overhead maintenance.
·         Full Recovery
   >    Transaksi log masuk berdasarkan waktu.
   >    Dapat restore data berdasarkan point-in-time.
   >    Transaksi log harus di hapus secara manual.
·         Bulk-Logged
   >    Transaksi log meggunakan space yang sedikit.
   >    Tidak bisa recovery berdasarkan point-in-time.

Memahami Backup Database
Backup database pada SQL Server ada tiga, yaitu :
·         Full Backup               :
   Membackup seluruh data.
 
·         Differential Backup  :
        Membackup data terakhir sejak full backup dilakukan. Mengurangi jumlah transaction log yang harus direstore.

Hari-1
Hari-2
Hari-3
Hari-4
Ukuran database
200 MB
250 MB
350 MB
375 MB
Jumlah yang dibackup
200 MB
50 MB
150 MB
175 MB


·         Incremental Backup :
Membackup data terakhir sejak full atau incremental backup dilakukan. Incremental backup membutuhkan semua file incremental backup agar dapat direstore secara lengkap.

Hari-1
Hari-2
Hari-3
Hari-4
Ukuran database
200 MB
250 MB
350 MB
375 MB
Jumlah yang dibackup
200 MB
50 MB
100 MB
25 MB

Keterangan : Full Backup, Differential Backup, Incremental Backup.

Transaction Log :
Membackup file actives log database, berguna untuk melakukan tracing.

Memahami Partial dan Differential Backups
   >    Partial dan differential partialbackup didesain untuk memdahkan dalam membackup databasae berisi filegroups.
    >    Partial backup :
      ·         Backup semua data pada primar filegroup, setiap read/write file group
      ·         Setiap opsional read-only file atau filegroup.
      ·         Berisi read-only database primary filegroup.
    >    Differential backup :
      ·         Hanya berisi data dari terakhir modifikasi.
Memahami File Backup
    >    File di dalam database dapat di backup secara individual.
   >    File backup : backup data secara keseluruhan di dalam satu atau beberapa file atau filegroup.
    >    Differential file backup : backup data di dalam satu atau beberapa file atau filegroup.

Memahami Restore Database
SQL server mendukung berbagai cara restore database, yaitu :
·    Complete database restore : restire seluruh database, berdasarkan Full database hingga differential database backup.
·         File restore : restore file atau filegroup di dalam multi-filegroup database.
·         Page resrore : restore halaman.
·         Piecemeal restore : restore database  bertahap, dimuali primary filegroup dan satu atau lebih secondary filegroup.
·         Recovery only : recovery data yang sesuai dengan database dan hanya dibuat available.
·    Transaction log restore : di bawah full or bulk-logged recovery model, restore dari log backups.
·       Create mirror database : mirror database, memiliki duplikat database dalam beberapa server. Ketika informasi masuk ke server pertama, secara otomatis meniru di server kedua.
·     Create and maintain a standby server : terdapat active-passive cluster pada dua atau lebih server, ketika aktif server gagal, maka pasif server menjadi aktif.

Perintah Restore
Perintah T-SQL dapat melakukan restore dalam beberapa skenario, yaitu :
·         Restore seluruh database dari full database backup (complete restore).
·         Restore partial database (partial restore).
·         Restore spesifik file atau filegroup ke database (file restore).
·         Restore spesifik page ke database (page restore).
·         Restore  log transaksi ke dalam database (restore log transaksi).
·         Revert database ke point-on-time yang diambil oleh database snapshot.
Contoh restore database menggunakan spesifik file :
      RESTORE DATABASE <nama_database> FROM DISK = ‘<nama_backup>’

Komentar