Transparent Data Encryption

advertisement
Transparent Data Encryption
Overvie
Dalam database, data yang kita masukkan, akan dismpan dalam baris – baris pada
tiap kolom dan tabel. Namun sebenarnya data tersebut disimpan oleh database
engine dalam sebuah file di media penyimpanan pada komputer. Database engine
memiliki kemanan yang bisa melarang orang tidak terautentikasi untuk mengakses
database. Tetapi masalahnya, jika seseorang tersebut mendapatkan data fisik dari
media penyimpanan, maka hal itu berarti dia juga mendapatakn semua data yang
ada di database.
Untuk mengatasi permasalahan tersebut dibutuhkan suatu cara agar orang yang
berhasil mendapatkan data kita tetap tidak bisa membacanya. Solusinya adalah
dengan cara melakukan enkripsi pada data yang disimpan. Enkripsi adalah metode
yang digunakan untuk merubah suatu data menggunakan kunci tertentu sehingga
makna sebenarnya dari data tersebut tidak bisa dimengerti oleh orang lain tanpa
melakukan dekripsi menggunakan kunci yang sesuai.
Masalahnya, setiap kali kita membaca data yang dienkripsi kita harus melakukan
dekripsi pada data tersebut dengan kunci kita. Hal itu tentu membuat pekerjaan
menggunakan data yang dienkripsi menjadi semakin lama. Oleh karena itu
dibuatlah metode Transparent Data Encryption, dimana untuk membaca data yang
dienkripsi, kita tidak perlu melakukan dekripsi berulang – ulang. Kita hanya butuh
satu kunci yang menyataka bahwa kita adalah orang yang berhak mengakses data
– data tertenty, lalu kita tidak perlu melakukan dekripsi lagi pada data yang kita
miliki meskipun data tersebut dienkripsi dengan metode yang berbeda.
Pada SQL Server juga terdapat metode Transparent Data Encryption yang
membantu mengamankan data yang disimpan pada database dengan cara
melakukan enkripsi pada data. TDE pada SQL Server juga tidak membatasi
pengguna untuk mengakses data pada database, tetapi jika ada pencurian data,
maka data tersebut tetap tidak bisa dibaca [1]. Enkripsi database SQL Server
menggunakan Database Encryption Key (DEK), yaitu key yang diamankan
menggunakan certificate yang disimpan pada master database. Key ini
mengenkripsi data dan log file [2].
Cara kerja TDE pada SQL Server
SQL Server menerapkan penggunaan 3 tingkat kunci untuk melakukan enkripsi
pada data. Kunci yang pertama ada di tingkat server atau instance atau service
level yang disebut dengan service master key. Pada level berikutnya ada database
master key, dan level yang terakhir adalah database encryption key. Ketiga kunci
tersebut merupakan tiga kunci yang berbeda fungsinya.
Service master key adalh kunci yang diatur pada saat setup SQL Server. Service
master key ini merupakan kunci yang digunakan untuk mengenkripsi database
master key pada master database. Untuk melakukan enkripsi pada database, tidak
perlu mengubah service master key.
Database master key adalah key yang juga ada di master database. Key pada
database master key ini telah dienkripsi menggunakan key yang ada pada service
master key. Kemudian database master key ini digunakan untuk membuat
certificate. Seperti yang telah saya sebutkan sebelumnya, bahwa fungsi dari
certificate adalah untuk mengamankan Database Encryption Key (DEK) pada
database.
Yang terakhir adalah Database Encryption Key atau DEK. DEK ini lah yang
sebenarnya akan digunakan secara langsung untuk mengenkripsi data yang ada
pada database. Oleh karena itu, tingkat keamanan pada DEK jauh lebih tinggi dari
pada key sebelumnya. Pada DEK keamanan bisa hanya dilakukan menggunakan
password yang dimasukkan oleh user, melainkan harus menggunakan algoritma
enkripsi yang didukung oleh SQL Server. Beberapa algoritma yang didukung oleh
SQL Server adalah AES_128, AES_192, AES_256, dan TRIPLE_DES_3KEY [3].
Sehingga orang dari luar (tanpa otentikasi), jika ingin mendekripsi data, maka harus
berhasil mendekripsi key pada service master, kemudian database master, lalu
certificate, kemudian encryption key dari database yang tidak mungkin dipecahkan.
Menerapkan TDE pada Database
Untuk melakukan enkripsi pada database, langkah pertama yang harus dilakukan
adalah membuat database master key, jika belum ditetapkan sebelumnya. Untuk
membuatnya digunakan syntax
CREATE MASTER KEY ENCRYPTION BY PASSWORD = <namaPasswordY4ngKuat>
Sangat disarankan untuk menggunakan password yang kuat agar tidak mudah
ditebak. Password yang digunakan harus sesuai dengan aturan yang ditetapkan
pada password policy milik Windows pada setiap komputer.
Kemudian, langkah kedua adalah membuat certificate untuk mengamankan DEK.
Dalam satu server bisa dibuat banyak certificate. Satu certificate dapat digunakan
pada beberapa database. Syntax untuk membuatnya adalah [4]:
CREATE CERTIFICATE certificate_name WITH SUBJECT = ‘certificate
subject name’
Untuk membuat certificate bisa menggunakan key yang sudah ada maupun bisa
membuat baru. Syntax di atas merupakan contoh membuat certificate dengan key
yang baru. Subject adalah nilai yang merujuk pada metadata dari certificate [4].
Yang ketiga adalah membuat database encryption key. Untuk bisa membuat DEK,
certificate harus dibaut terlebih dahulu karena certificate akan digunakan untuk
mengenkripsi.
Contoh
syntax
untuk
membuatnya
adalah:
CREATE DATABASE ENCRYPTION KEY
WITH ALGORITHM = AES_256
ENCRYPTION BY SERVER CERTIFICATE certificate_name;
Algoritma yang digunakan tidak harus AES_256, bisa menggunakan algoritma lain
yang didukung oleh SQL Server.
Langkah terkhir untuk melakukan enkripsi adalah mengaktifkan enkripsi pada
database. Ketiga key yang telah dibuat sebelumnya tidak akan berfungsi sebelum
enkripsi pada database diaktifkan. Cara untuk mengaktifkannya adalah:
ALTER DATABASE nama_database SET ENCRYPTION ON
Yang Perlu Diingat
Perlu diketahui bahwa pada database dengan enkripsi aktif, maka segala backup
yang dilakukan pada database tersebut juga akan dienkripsi. Selain itu, enkripsi
juga akan mengenkripsi data dan log-file milik database sehingga recovery
database menggunakan log file juga tidak mungkin dilakukan tanpa menggunakan
key. Oleh karena itu, ketika membuat key dan mengaktifkan enkripsi pada database,
admin tidak boleh lupa key yang telah dibuatnya karena sama saja dengan
kehilangan database.
Oleh karena itu, sebaiknya admin melakukan backup terlebih dahulu sebelum
mengaktifkan pada enkripsi pada database. Backup ini akan disimpan pada sebuah
file pada media penyimpanan. Backup key ini harus di-restore terlebih ke database
engine sebelum kita me-restore backup database yang ternkripsi. Syntax untuk
melakukan backup adalah:
Backup service master key:
BACKUP SERVICE MASTER KEY TO FILE = 'G:\folder\service key.bak'
ENCRYPTION BY PASSWORD = 'STRONGESTPASSWORD'
Backup database master Key:
BACKUP MASTER KEY TO FILE = 'G:\folder\Master_Key.bak'
ENCRYPTION BY PASSWORD = 'DifferentPassword'
Backup certificate:
BACKUP CERTIFICATE certificate_name
TO FILE = 'G:\folder\certificate_name.bak'
Selain itu perlu diingat juga bahwa melakukan enkripsi pada database juga akan
mengurangi kecepatan database untuk membaca maupun menuliskan data pada database.
Data yang dikirim menggunakan FILESTREAM juga tidak akan dienkripsi.
Database Compression
Overview
Semua data dapat dikompresi (diperkecil ukurannya). Begitu pula data yang ada
pada database. Kompresi data adalah teknik - teknik yang dilakukan untuk
memperkecil volume yang digunakan oleh data pada media penyimpanan tanpa
merubah data tersebut. Data yang mengalami kompresi tetap bisa dimengerti oleh
manusia, hanya saja ukurannya menjadi lebih kecil.
Pada database, terdapat dua jenis kompresi, yaitu page compression (kompresi
pada tabel) dan row compression (kompresei pada row). Keduanya memiliki
perbedaan dari segi jangkauan kompresinya dan cara melakukukan kompresi pada
data.
Row Compression
Row compression akan melakukan data pada setiap row di setiap kolom. Cara
kompresinya adalah dengan mengubah storage format menjadi variable-length
pada tipe data numeric dan tipe data dengan fixed-length serta mengurangi
metadata ovehead yang terkait dengan record tersebut [5]. Contohnya pada tipe
data char yang seharusnya memiliki fixed-lenght, maka jika dikompresi
menggunakan row compression penyimpananya hanya akan menggunakan panjang
yang dimiliki karekternya. Contohnya lagi pada tipe data float, maka kompresi tidak
akan menyimpan angka terakhir dari float jika angka terseu adalah angka nol.
Cara mengaktifkan row compression pada database dapat menggunakan dua cara.
Cara yang pertama adalah dengan cara menambahkan atribut WITH COMPRESSION
= ROW pada saat membuat tabel. Cara yang kedua adalah dengan cara melakukan
alter tabel dengan syntax ALTER TABLE nama_tabel REBUILD PARTITION = ALL
WITH (DATA COMPRESSION = ROW). Perintah alter table tersebut sebenarnya
adalah untuk melakukan rebulid partition dengan menambahkan row compression
pada pembentukan yang baru.
Page Compression
Page compression dalah compression dengan jangakauan kompresi yang lebih luas
dari pada row compression. Page compression tidak hanya melakukan kompresi
pada tingkat record tiap baris, tetapi juga melakukan kompresi pada penyimpanan
tabel. Selain itu, pada saat melakukan page compression maka row compression
juga pasti dijalankan. Sebenarnya ada tiga proses kompresi yang dilakukan ketika
page compression aktif. Yang pertama adalah melakukan row compression, lalu
prefix compression, dan yang terakhir adalah dictionary compression[6].
Prefix compression adalah proses kompresi data pada tabel dengan cara
mengurangi redudansi data pada tabel. Prefix mengurangi redudansi data dengan
cara mencari awalan dari setiap record yang memiliki persamaan. Setelah awalan
tersebut disimpan, awalan pada setiap record yang sama dengan awalan tersebut
akan dihapus dan diganti dengan cara mereferensikan record pada awalan.
Setelah awalan pada setiap record terhapus pada prefix compression kemudian
dictionary compression dijalankan. Dictironarry compression akan mencari record –
record yang sama setelah awalanya terhapus pada saaat prefix compression.
Setelah itu, record yang sama tersebut akan direferensikan oleh baris – baris lain
yang menggunakannya.
Contohnya jika ada record:
Meja
meja_makan
meja_tamu
meja_belajar
Kursi
kursi_makan
kursi_tamu
kursi_belajar
Maka ketika dilakukan prefix compression akan dibuat satu recor yang berisi meja_
dan kursi_ menghapus record lain yang mengandung data tersebut. Sehingga
semua record menjadi:
Meja
meja_
makan
tamu
belajar
Kursi
kursi_
makan
tamu
belajar
Ketika akan dibaca, record yang dipotong akan direferensikan ke baris pertama.
Kemudian, dengan menggunakan dictionarry compression maka kata – kata yang
sama pada tabel tersebut akan dijadikan satu sehingga tabel menjadi seperti
berikut:
Meja
meja_
makan
tamu
belajar
Kursi
kursi_
0
0
0
Record yang dihapus akan direferensikan ke record dengan data yang sama.
Cara mengaktifkan page compression pada tabel sama seperti cara mengaktifkan
row compression, hanya mengganti jenis compression-nya menjadi page.
Contohnya adalah ALTER TABLE nama_tabel REBUILD PARTITION = ALL WITH
(DATA COMPRESSION = PAGE).
Yang Perlu Diperhatikan
Melakukan compression pada tabel juga akan memperlambat kerja dari database
engine. Hal tersebut disebabkan karena untuk menghasilkan data yang sama maka
database engine harus menyusun kembali data yang telah dikompresi (bisa dilogika
dari algoritma page compression).
Kompresi ini tidak berlaku pada backup dan restore. Sehingga volume backup dari
database yang dikompresi akan lebih besar dari pada database yang dikompresi.
Begitu juga saat restore, maka database tidak akan terkompresi.
Server And Database Options
Overview
Database engine SQL Server dirancang untuk dapat bekerja di segala lingkungan
kerja. Oleh karena itu, untuk agar SQL Server bisa disesuaikan dengan lingkungan
kerjanya, maka disediakan berbagai options yang bisa diatur sendiri oleh admin
database.
Options pada SQL Server bisa dilakukan pada tingkat server maupun pada itngkat
database. Options pada tingkat server akan mengatur perilaku server atau instace
atau service. Sedangkan options pada database akan mengatur perilaku dari
database.
Server Options
Server options akan mengatur perilaku dari server. Sebenarnya semua options pada
server dapat diubah, tetapi tidak semua options tersebut diperlihatkan oleh SQL
Server dan tidak semuanya dapat diubah dengan mudah. Ada 17 opsi yang dapat
diubah dengan mudah dari total 69 opsi yang bisa diubah.
Untuk mengatur basic options admin dapat mengaturnya melalui user interface
yang telah disediakan oleh SQL Server Management Studio dengan cara membuka
properties dari server kemudain pilih tab advance. Meskipun options yang ada pada
GUI ini adalah opsi dasar, tetapi tetap saja opsi – opsi tersebut bisa mempengaruhi
performa. Seperti contohnya saya sendiri yang secara tidak sengaja merubah opsi
pada server melalui GUI kemudian entah kenapa database engine saya tidak bisa
mengekseskusi query untuk merubah options pada database.
Untuk mengubah opsi yang lebih advance, diperlukan cara yang lebih advance dan
administrator yang lebih ahli. Hal ini dikarenakan opsi yang lebih advance dapat
menentukan keseluruhan proses kerja dari SQL Server. Salah satu contoh advance
options yang ada adalah RECOVERY INTERVAL yang mengatur selang waktu
recovery yang harus dilakukan database engine dalam satuan menit.
Untuk mengubah advance options, maka kita harus mengakitfkan
Advance Options dengan query sp_configure ‘show advance
RECONFIGURE. Setelah mengaktifkan advance options, barulah kita bisa
advance options pada server. Ada banyak pilihan advance options,
menggunakan perintah RECONFIGURE.
dulu Show
option’,1
mengubah
semuanya
Database Options
Berbeda dengan server options, database options hanya akan mengatur perilaku
dari database. Pada database ini tidak ada opsi yang disembunyikan. Semua opsi
dapat diubah dengan mudah baik menggunakan GUI maupun menggunakan query.
Untuk mengubah opsi menggunakan GUI caranya sangat mudah, tinggal membuka
properties dari salah satu database, kemudian buka tab options, disana akan
banyak opsi yang bisa diubah. Opsi yang lebih banyak bisa diakses menggunakan
query.
Query yang digunakan untuk mengatur options pada database adalah ALTER
DATABASE dengan atribut SET. Ada banyak kategori pilihan opsi pada SET, beberapa
diantaranya adalh auto option, access options (single user, restricted user, multi
user) dan state options (Online, Offline, Emergency). Contoh query untuk mengubah
database menjadi offline adalah:
ALTER DATABASE Db_name SET OFFLINE
Affinition and Paralellism
Affinition
SQL Server berjalan di atas sistem operasi windows yang mengoperasikan hardware
– hardware yang ada di dalam komputer untuk melakukan tugas tertentu. Di dalam
dunia software, hardware yang dimiliki komputer ini disebut sumber daya atau
resources. Affinition adalah kemampuan untuk menentukan berapa resource pada
komputer yang akan digunakan untuk menyelesaikan tugas terntentu.
Software yang berjalan pada sebuah sistem operasi komputer tidak hanya satu,
melainkan ada banyak software terkadang bekerja bersama. Oleh karena itu,
resource yang ada di komputer harus dibagi ke semua software tersebut
diantaranya adalah SQL Server. SQL Server membutuhkan resouce untuk
melakukan pekerjaannya. Windows akan melakukan scheduling dan melakukan
pembagian resource untuk thread SQL Server, inilah yang disebut Apartement
Threading.
Affinity sendiri memiliki dua jenis, yaitu CPU Affinity dan IO Affinity. CPU Affinity
terkait dengan pembagian resource CPU kepada SQL Server. Sedangkan IO Affinition
adalah terkait proses read/write yang akan dilakukan oleh CPU ke main memorry.
SQL Server bisa memilih CPU mana yang akan digunakan untuk menyelesaikan
tugasnya. Namun sekali lagi, Windows-lah yang berhak menentukan kapan SQL
Server bisa memakai resource tersebut.
Paralellism
Paralellisem sebenarnya ada kaitannya dengan Affinition. Paralellism adalah
kemampuan SQL Server untuk menggunakan lebih dari satu CPU untuk
menyelsaikan satu tugas. Kemampuan ini hanya berfungsi jika SQL Server berjalan
pada komputer yang memiliki lebih dari satu cpu atau cpu core.
Secara default, SQL Server akan menyeting dirinya untuk bisa menggunakan semua
resource yang tersedia pada komputer [7]. Berapapun CPU dan main memorry yang
ada akan digunakan dengan maksimal oleh SQL Server. Dengan begitu, proses
query yang dilakukan pada SQL Server dapat diekseskusi dengan lebih cepat. Tetapi
masalahnya adalah ketika komputer tersebut tidak hanya digunakan untuk
menjalankan SQL Server, maka aplikasi yang lain akan dikorbankan.
Oleh karena itu, kita bisa merubah setting pada SQL Server untuk merubah CPU
mana saja yang akan digunakan untuk melakukan prosess. Selain itu kita juga bisa
mengatur MAXDOP (Maximum Degree Of Paralellism). MAXDOP adalah setting yang
mengatur seberapa banyak CPU yang bisa digunakan oleh SQL Server. Dengan
menggunakan MAXDOP ini, kita bisa mengatur berapa resource maksimal yang bisa
digunakan oleh SQL Server.
Pengaturan MAXDOP ini bisa diatur pada tingkat server dan query. Pada tingkat
service berarti kita mengatur default MAXDOP pada semua query yang akan
dijalankan. Tetapi, jika kita merasa query tersebut butuh resource yang lebih banyak
atau jika kita ingin mempercepat proses lain dengan mengurangi paralellism pada
query tersebut, kita juga bisa mengatur MAXDOP pada setiap query yang akan
diekseskusi. Pengaturan MAXDOP pada tingkat query akan meng-override
pengaturan MAXDOP pada tingkat server.
Untuk mengatur MAXDOP bisa menggunakan GUI yaitu pada propertise milik
database engine dan pilih tab processor. Diana bisa memilih CPU mana yang akan
digunakan dan berapa MAXDOP yang diterapkan. Selain meggunakan GUI bisa
menggunakan query SP_CONFIGURE pada RECONFIGURE. Contoh query untuk
mengatur MAXDOP pada SQL Server menjadi 4 adalah:
SP_CONFIGURE ‘Max Degree Of Paralellism’, 4 RECONFIGURE WITH OVERRIDE.
Secara default, angka MAXDOP adalah 0
menggunakan semua resource yang tersedia.
yang
berarti
SQL
Server
bisa
Automation: SQL Agent Jobs and Alerts
Pada SQL Server terdapat sebuah fitur yang sangat berguna, yaitu automation. Fitur
Automation adalah fitur yang memunkinkan SQL Server untuk melakukan
perkerjaan secara otomatis pada saat – saat tertentu sesuai aturan yang telah
dibuat. Bagian dalam SQL Server yang bertugas untuk melakukan automation
adalah Agent Jobs.
Agent Job
Agent jobs bertugas untuk mengeksekusi suatu perintah otomatis yang dibuat oleh
admin [8]. Perintah yang akan dijalankan secara otomatis oleh Agent Jobs tersebut
disebut JOB. JOB merupakan sebuah pekerjaan yang akan dikerjakan secara
otomatis baik itu pekerjaan yang akan bekerja secara sementara (ad-hoc), sesuai
jadwal (on schedule), atau sesuai kebutuhan (on-demand). Setiap job akan memiliki
satu atau beberapa rangkaian pekerjaan (job-step) yang harus dilakukan untuk
menyelesaikan job tersebut. Setiap job-step akan menjalankan satu job-subsystem.
Keamanan untuk setiap step pada setiap job berbeda beda. Tergantung dimana job
step tersebut dikerjakan. Job yang dibuat untuk sysadmin tentunya akan berbeda
keamanannya dengan job yang dibuat untuk non-sysadmin.
Membuat Automation
Untuk membuat automation, yang pertama dibuat
orang yang memiliki kepentingan terhadap hasil
akan dianggap sebagai orang yang menjalankan
entah itu gagal atau sukes akan diberitahuan
operator.
adalah operator. Operator adalah
pekerjaan sebuah job. Operator
sebuah job. Hasil akhir dari job,
kepada operator melalui email
Setelah membuat operator, maka kita harus
masukkan job-step. Setiap job dapat memiliki
akan mengeksekusi perintah. Kita juga dapat
job-step selesai, entah pada kondisi sukses
dapat diatur schedulnya.
membuat job. Pada job ini harus kita
beberapa job step dan setiap job step
memilih apa yang akan dialkukan jika
ataupun gagal. Pada setiap job juga
Agent Alrets
Agent alrets adalah sautu agen yang dimiliki oleh SQL Server yang berfungsi untuk
melaporkan suatu kondisi atau event. Seperti contohnya laporan sukses atau gagal
pada sebuah job. Ada tiga tipe event utama yang ditangani oleh Alrets, yaitu SQL
Server Event, SQL Server Performance Conditions, dan WMI (Windows Management
Instrument) Event.
SQL Server Event adalah jenis event yang dilakukan oleh SQL Server yang sudah
diatur oleh admin. Sedangkan SQL Server Performance Event adalah event yang
terjadi berdasarkan performa yang diraih oleh SQL Server. Kemudia WMI Event
adalah suatu event dari SQL Server yang dimonitor oleh WMI [9].
Database Mail
Pada SQL Server terdapat fitur pengiriman email langsung dari database engine ke
alamat email tertentu. Untuk mengirim email ini dibutuhkan SMTP Server yang akan
digunakan untuk mengrimkan email.
Isi dari email yang dikirimkan bisa bermacam – macam. Bisa berupa notification
biasa atau bisa juga hasil query dari database. Email akan dikirim menggunakan
account milik database yang telah ditentukan sebelumnya. Email juga bisa
dikirimkan melalui prosedur automation seperti yang telah di jelaskan pada bab
sebelumnya.
Implementasi Database Mail
Untuk mengaktifkan fitur ini,maka pengartruan server untuk mengirim database harus
diaktifkan dulu. Cara mengaktifkannya adalah menggunakan sp_configure dengan perintah
Database Mail XPs.
Selain itu, untuk bisa mengirim email maka admin harus membuat email account
untuk database terelbih dahulu. Account ini lah yang akan menyimpan informasi
tentang SMPT account [10]. Cara membuatnya adalah menggunakan query
msdb.dbo.sysmail_add_account_sp. Contoh query untuk melakukannya adalah:
EXECUTE msdb.dbo.sysmail_add_account_sp
@account_name = 'MyStore_db Admin’,
@description = 'Mail account for store customer e-mail.',
@email_address = '[email protected]',
@display_name = 'MyStore Mailer',
@mailserver_name = 'smtp.gmail.com' ;
Yang perlu diperhatikan untuk add account adalah apakah alamat email dan SMTP servernya
sudah benar.
Kemudian,
untuk
mengirimkan
email,
kita
gunakan
msdb.dbo.sp_send_dbmail. Contoh query untuk mengirim email adalah:
perintah
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'MyStore Admin’,
@recipients = '[email protected]',
@query = 'SELECT * FROM Store_db.Cust_order
WHERE cust_id = 5212100064,
@body = ‘This is your order list’
@subject = 'Customer Order List',
@attach_query_result_as_file = 1;
Pada query di atas, kita bisa menambahkan hasil query sebagai attachment. Kita harus
memperhatikan apakah alamat email yang dikirim benar. Isi dari email bisa dimasukkan
pada body.
Database mail history
Kita juga harus mengelola history dari database mail agar tidak memakan banyak
space pada media penyimpanan. Untuk menghapusnya digunakan perintah
dbo.sysmail.delete_mailitems_sp untuk menghapus email database yang
disimpan
pada
tabel
database
mail.
Dan
menggunakan
perintah
dbo.sysmai.delete_log_sp untuk menghapus log event yang dihasilkan oleh
database mail.
Kita bisa menghapus semua email atau log yang ada atau kita juga bisa menghapus
email – email tertentu saja. Misalkan kita hanya akan menghapsu email yang
dikirim sebelum bulan ini atau menghapsu semua email yang gagal dikirim. Untuk
memilih berdasarkan waktu kita menggunkan atribut @logged_before. Untuk
memilih berdasrkan event kita menggunakan atribut @event_type.
Contoh query untuk menghapus email dan log adalah sebagai berikut:
EXEC msdb.dbo.sysmail_delete_log_sp
@logged_before = 'January 1, 2015';
EXEC msdb.dbo.sysmail_delete_mailitems_sp
@sent_status = 'failed';
References
[1] Database Journal, “Transparent Data Encryption,” 19 May 2014. [Online].
Available:
http://www.databasejournal.com/features/mssql/transparent-dataencryption-tde-in-sql-server.html.
[2] Micrsoft Developer Network, “Transparent Data Encryption,” [Online]. Available:
https://msdn.microsoft.com/en-us/library/bb934049.aspx.
[3] Microsoft Developer Network, “Create Database Encryption Key,” [Online].
Available: https://msdn.microsoft.com/en-us/library/bb677241.aspx.
[4] Microsoft Developer Network, “Create Certificate,” [Online].
https://msdn.microsoft.com/en-us/library/ms187798.aspx.
Available:
[5] Microsoft Developer Network, “Row Compression Imprlementation,” [Online].
Available: https://msdn.microsoft.com/en-us/library/cc280576.aspx.
[6] Microsoft Developer Network, “Page Compression Implementation,” [Online].
Available: https://msdn.microsoft.com/en-us/library/cc280464.aspx.
[7] Microsoft TechNet - SQL Server , “Max Degree Of Paralellism Option,” [Online].
Available:
https://technet.microsoft.com/enus/library/ms181007%28v=sql.105%29.aspx.
[8] Microsoft Developer Network, “SQL Server Agent,”
https://msdn.microsoft.com/en-us/library/ms189237.aspx.
[Online].
[9] Microsoft
Developer
Network,
“Alrets,”
[Online].
https://msdn.microsoft.com/en-us/library/ms180982.aspx.
Available:
Available:
[10 Microsoft Developer Network, “sysmail_add_account_sp (Transact-SQL),”
]
[Online]. Available: https://msdn.microsoft.com/en-us/library/ms182804.aspx.
Download