Merhaba arkadaşlar;
Günümüzde veri güvenliğinin ne derece yapılabildiği sorgulanır.
Bir nebze veri güvenliğini sağlaya bilmek için Güvenlik Sertifikası kullanımından bahsetmek istedim.
Öncelikle SQL Server’ımızı açıp ve bir sorgu penceresi açalım.
Daha sonra aşağıdaki açıklamalı T-SQL kodlarını çalıştırıp inceleyelim.
Not: Şifreli alanlar veri tabanında binary formatta tutulur.
--Test Veritabanımızı Oluşturuyoruz
CREATE DATABASE SertifikaTestDB
--örnek teşkil edecek bir tablo oluşturalım
--Tablomuzda Kullanıcının TC Kimlik numarasını
--şifreli tutmak istiyoruz
CREATE TABLE Kullanici
(
KullaniciId INT PrimaryKey IDENTITY,
Ad NVARCHAR(300),
Soyad NVARCHAR(300),
TckNo VARBINARY(256)
)
--Sertifika Test veri tabanımızda master key oluşturuyoruz
CREATE MASTER KEY ENCRYPTION BY PASSWORD ='sifreniz'
--Sertifika oluşturmadan önce master key açılır ve sertifika
--oluşturulmak için hazır hale getirilir
OPEN MASTER KEY DECRYPTION BY PASSWORD = 'sifreniz'
--Sertifika Konusu ve Başlangıç tarihi ile oluşturulur.
--Başlangıç tarihi içinde bulunulan tarihten öncesi olarak seçilemez
CREATE CERTIFICATE Test_Certificate
WITH SUBJECT ='şifreleme için kullanılacaktır.',
START_DATE ='05/05/2011'
--SYMMETRIC KEY Oluşturulur
CREATE SYMMETRIC KEY Test_Key
WITH ALGORITHM = triple_des,
identity_value ='sifreniz',
key_source ='sifreniz'
ENCRYPTION BY CERTIFICATE Test_Certificate
--Insert Update ve Select işlemleri yapılırken SYMMETRIC KEY açılır
OPEN SYMMETRIC KEY Test_Key decryption BY CERTIFICATE Test_Certificate
--Insert Update ve Select işlemleri yapıldıktan sonra SYMMETRIC KEY kapatılır
CLOSE SYMMETRIC KEY Test_Key
--Select Örneği
OPEN SYMMETRIC KEY Test_Key DECRYPTION BY CERTIFICATE [Test_Certificate]
Select Ad,
Soyad,
CONVERT(nvarchar(100), DecryptByKey(TckNo)) AS TCKNo
from Kullanici
CLOSE SYMMETRIC KEY Test_Key
--Insert Örneği
OPEN SYMMETRIC KEY Test_Key DECRYPTION BY CERTIFICATE [Test_Certificate]
INSERT INTO Kullanici (Ad,Soyad,TckNo)
VALUES (
'Onur',
'YILMAZ',
EncryptByKey(Key_Guid('Test_Key'), '12345678901')
)
OPEN SYMMETRIC KEY Test_Key DECRYPTION BY CERTIFICATE [Test_Certificate]
CLOSE SYMMETRIC KEY Test_Key
--Update Örneği
OPEN SYMMETRIC KEY Test_Key DECRYPTION BY CERTIFICATE [Test_Certificate]
UPDATE Kullanici
SET Ad = 'Onur',
Soyad = 'YILMAZ',
TckNo = EncryptByKey(Key_Guid('Test_Key'), '98765432101')
WHERE KullaniciId = 1
OPEN SYMMETRIC KEY Test_Key DECRYPTION BY CERTIFICATE [Test_Certificate]
CLOSE SYMMETRIC KEY Test_Key
Bir sonraki makalede görüşmek üzere.
İyi günler dilerim...