BUAT KUNCI MASTER (Transact-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform System (PDW)

Membuat kunci master database dalam database.

Penting

  • Anda harus mencadangkan kunci master dengan menggunakan BACKUP MASTER KEY, dan menyimpan cadangan di lokasi di luar situs yang aman.
  • Di SQL Server, Anda juga harus mencadangkan kunci master layanan menggunakan BACKUP SERVICE MASTER KEY, dan menyimpan cadangan di lokasi di luar situs yang aman.

Konvensi sintaks transact-SQL

Sintaksis

CREATE MASTER KEY [ ENCRYPTION BY PASSWORD ='password' ]
[ ; ]

Catatan

Untuk melihat sintaks Transact-SQL untuk SQL Server 2014 (12.x) dan versi yang lebih lama, lihat Dokumentasi versi sebelumnya.

Argumen

PASSWORD ='password'

Kata sandi yang digunakan untuk mengenkripsi kunci master dalam database. kata sandi harus memenuhi persyaratan kebijakan kata sandi Windows komputer yang menjalankan instans SQL Server. kata sandi bersifat opsional di SQL Database dan Azure Synapse Analytics.

Keterangan

Kunci master database adalah kunci konten yang digunakan untuk melindungi kunci privat sertifikat dan kunci asimetris yang ada dalam database dan rahasia dalam kredensial lingkup database. Saat dibuat, kunci master dienkripsi dengan menggunakan algoritma AES_256 dan kata sandi yang disediakan pengguna. Di SQL Server 2008 (10.0.x) dan SQL Server 2008 R2 (10.50.x), algoritma Triple DES digunakan. Untuk mengaktifkan dekripsi otomatis kunci master, salinan kunci dienkripsi dengan menggunakan kunci master layanan dan disimpan di database dan di master. Biasanya, salinan yang disimpan di diperbarui secara diam-diam master setiap kali kunci master diubah. Default ini dapat diubah dengan menggunakan opsi DROP ENCRYPTION BY SERVICE MASTER KEY dari ALTER MASTER KEY. Kunci master yang tidak dienkripsi oleh kunci master layanan harus dibuka dengan menggunakan pernyataan OPEN MASTER KEY dan kata sandi.

Kolom is_master_key_encrypted_by_serversys.databases tampilan katalog di menunjukkan apakah kunci master database dienkripsi master oleh kunci master layanan.

Informasi tentang kunci master database terlihat dalam sys.symmetric_keys tampilan katalog.

Untuk SQL Server dan Gudang Data Paralel, kunci master biasanya dilindungi oleh kunci master layanan dan setidaknya satu kata sandi. Jika database dipindahkan secara fisik ke server yang berbeda (pengiriman log, pemulihan cadangan, dll.), database akan berisi salinan kunci master yang dienkripsi oleh kunci master layanan server asli (kecuali enkripsi ini dihapus secara eksplisit menggunakan ALTER MASTER KEY DDL), dan salinannya dienkripsi oleh setiap kata sandi yang ditentukan selama operasi atau CREATE MASTER KEYALTER MASTER KEY DDL berikutnya. Untuk memulihkan kunci master, dan semua data yang dienkripsi menggunakan kunci master sebagai akar dalam hierarki kunci setelah database dipindahkan, pengguna akan memiliki pernyataan penggunaan OPEN MASTER KEY menggunakan salah satu kata sandi yang digunakan untuk melindungi kunci master, memulihkan cadangan kunci master, atau memulihkan cadangan kunci master layanan asli di server baru.

Untuk SQL Database dan Azure Synapse Analytics, perlindungan kata sandi tidak dianggap sebagai mekanisme keamanan untuk mencegah skenario kehilangan data dalam situasi di mana database dapat dipindahkan dari satu server ke server lain, karena perlindungan kunci master layanan pada kunci master dikelola oleh platform Microsoft Azure. Oleh karena itu, kata sandi kunci master bersifat opsional di SQL Database dan Azure Synapse Analytics.

Untuk SQL Database, kunci master database dapat dibuat secara otomatis untuk melindungi rahasia dalam kredensial lingkup database yang digunakan untuk audit dan fitur lain yang memerlukan kredensial cakupan database untuk mengautentikasi ke sumber daya eksternal, seperti akun Azure Storage. Kunci master dibuat dengan kata sandi yang dipilih secara acak yang kuat. Pengguna tidak dapat membuat kunci master pada database logis master . Kata sandi kunci master tidak diketahui oleh Microsoft dan tidak dapat ditemukan setelah pembuatan. Untuk alasan ini, disarankan untuk membuat kunci master database sebelum membuat kredensial lingkup database.

Kunci master layanan dan kunci master database dilindungi dengan menggunakan algoritma AES-256.

Izin

Memerlukan izin CONTROL pada database.

Contoh

Gunakan contoh berikut untuk membuat kunci master database dalam database. Kunci dienkripsi menggunakan kata sandi.

CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<strong password>';
GO

Verifikasi keberadaan kunci baru, ##MS_DatabaseMasterKey##:

SELECT * FROM sys.symmetric_keys;
GO