Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Topik ini menjelaskan cara membuat kunci simetri yang identik pada dua server berbeda di SQL Server 2014 dengan menggunakan Transact-SQL. Untuk mendekripsi ciphertext, Anda memerlukan kunci yang digunakan untuk mengenkripsinya. Ketika enkripsi dan dekripsi terjadi dalam satu database, kunci disimpan dalam database dan tersedia, tergantung pada izin, untuk enkripsi dan dekripsi. Tetapi ketika enkripsi dan dekripsi terjadi dalam database terpisah atau di server terpisah, kunci yang disimpan dalam satu database tidak tersedia untuk digunakan pada database kedua
Dalam Topik Ini
Sebelum Anda mulai:
Untuk membuat kunci simetris yang identik di dua server yang berbeda, menggunakan Transact-SQL
Sebelum Anda mulai
Batasan dan Pembatasan
Ketika kunci simetris dibuat, kunci simetris harus dienkripsi dengan menggunakan setidaknya salah satu dari yang berikut: sertifikat, kata sandi, kunci simetris, kunci asimetris, atau PENYEDIA. Kunci dapat memiliki lebih dari satu enkripsi dari setiap jenis. Dengan kata lain, satu kunci simetris dapat dienkripsi dengan menggunakan beberapa sertifikat, kata sandi, kunci simetris, dan kunci asimetris secara bersamaan.
Ketika kunci simetris dienkripsi dengan kata sandi alih-alih kunci publik dari kunci master database, algoritma enkripsi TRIPLE DES digunakan. Karena itu, kunci yang dibuat dengan algoritma enkripsi yang kuat, seperti AES, sendiri diamankan oleh algoritma yang lebih lemah.
Keamanan
Hak akses
Memerlukan izin untuk mengubah kunci simetris apa pun pada database. Jika OTORISASI ditentukan, diperlukan izin IMPERSONATE pada pengguna database atau izin ALTER pada peran aplikasi. Jika enkripsi berdasarkan sertifikat atau kunci asimetris, memerlukan izin LIHAT DEFINISI pada sertifikat atau kunci asimetris. Hanya login Windows, login SQL Server, dan peran aplikasi yang dapat memiliki kunci simetris. Grup dan peran tidak dapat memiliki kunci simetris.
Menggunakan T-SQL
Untuk membuat kunci simetris yang identik di dua server yang berbeda
Di Object Explorer, sambungkan ke instance Database Engine.
Pada bilah Standar, klik Kueri Baru.
Buat kunci dengan menjalankan pernyataan CREATE MASTER KEY, CREATE CERTIFICATE, dan CREATE SYMMETRIC KEY berikut.
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'My p@55w0Rd'; GO CREATE CERTIFICATE [cert_keyProtection] WITH SUBJECT = 'Key Protection'; GO CREATE SYMMETRIC KEY [key_DataShare] WITH KEY_SOURCE = 'My key generation bits. This is a shared secret!', ALGORITHM = AES_256, IDENTITY_VALUE = 'Key Identity generation bits. Also a shared secret' ENCRYPTION BY CERTIFICATE [cert_keyProtection]; GOSambungkan ke instans server terpisah, buka Jendela Kueri yang berbeda, dan jalankan pernyataan SQL di atas untuk membuat kunci yang sama di server kedua.
Uji kunci dengan terlebih dahulu menjalankan pernyataan OPEN SYMMETRIC KEY dan pernyataan SELECT di bawah ini di server pertama.
OPEN SYMMETRIC KEY [key_DataShare] DECRYPTION BY CERTIFICATE cert_keyProtection; GO SELECT encryptbykey(key_guid('key_DataShare'), 'MyData' ) GO -- For example, the output might look like this: 0x2152F8DA8A500A9EDC2FAE26D15C302DA70D25563DAE7D5D1102E3056CE9EF95CA3E7289F7F4D0523ED0376B155FE9C3Pada server kedua, tempelkan hasil pernyataan SELECT sebelumnya ke dalam kode berikut sebagai nilai
@blobdan jalankan kode berikut untuk memverifikasi bahwa kunci duplikat dapat mendekripsi ciphertext.OPEN SYMMETRIC KEY [key_DataShare] DECRYPTION BY CERTIFICATE cert_keyProtection; GO DECLARE @blob varbinary(8000); SET @blob = SELECT CONVERT(varchar(8000), decryptbykey(@blob)); GOTutup kunci simetris di kedua server.
CLOSE SYMMETRIC KEY [key_DataShare]; GO
Untuk informasi selengkapnya, lihat yang berikut ini:
BUAT SERTIFIKAT (Transact-SQL)
MEMBUAT KUNCI SIMETRIS (Transact-SQL)