MEMBUAT KREDENSIAL CAKUPAN DATABASE (Transact-SQL)
Berlaku untuk: Database SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) SQL database di Microsoft Fabric
Membuat kredensial database. Kredensial database tidak dipetakan ke login server atau pengguna database. Kredensial digunakan oleh database untuk mengakses ke lokasi eksternal kapan saja database melakukan operasi yang memerlukan akses.
Sintaks
CREATE DATABASE SCOPED CREDENTIAL credential_name
WITH IDENTITY = 'identity_name'
[ , SECRET = 'secret' ]
[ ; ]
Argumen
credential_name
Menentukan nama kredensial lingkup database yang sedang dibuat. credential_name tidak dapat dimulai dengan tanda angka (#
). Kredensial sistem dimulai dengan ##
. Panjang maksimum credential_name adalah 128 karakter.
IDENTITY = 'identity_name'
Menentukan nama akun yang akan digunakan saat menyambungkan ke luar server.
- Untuk mengimpor file dari Azure Blob Storage atau Azure Data Lake Storage menggunakan kunci bersama, nama identitas harus
SHARED ACCESS SIGNATURE
. Untuk informasi selengkapnya tentang tanda tangan akses bersama, lihat Menggunakan Tanda Tangan Akses Bersama (SAS). Hanya gunakanIDENTITY = SHARED ACCESS SIGNATURE
untuk tanda tangan akses bersama. - Untuk mengimpor file dari Azure Blob Storage menggunakan identitas terkelola, nama identitas harus .
MANAGED IDENTITY
- Saat menggunakan Kerberos (Windows Active Directory atau MIT KDC) jangan gunakan nama domain dalam argumen IDENTITY. Ini seharusnya hanya nama akun.
- Dalam instans SQL Server, jika membuat kredensial cakupan database dengan Kunci Akses Penyimpanan yang digunakan sebagai RAHASIA, IDENTITAS diabaikan.
- WITH IDENTITY tidak diperlukan jika kontainer di penyimpanan Azure Blob diaktifkan untuk akses anonim. Untuk contoh mengkueri penyimpanan Azure Blob, lihat Mengimpor ke tabel dari file yang disimpan di penyimpanan Azure Blob.
Penting
Satu-satunya sumber data eksternal PolyBase yang mendukung autentikasi Kerberos adalah Hadoop. Semua sumber data eksternal lainnya (SQL Server, Oracle, Teradata, MongoDB, ODBC generik) hanya mendukung Autentikasi Dasar.
- Untuk memuat data ke Azure Synapse Analytics, nilai apa pun yang valid dapat digunakan untuk IDENTITY.
- Dalam kumpulan SQL tanpa server Azure Synapse Analytics, kredensial tercakup database dapat menentukan identitas terkelola ruang kerja, nama perwakilan layanan, atau token tanda tangan akses bersama (SAS). Akses melalui identitas pengguna, yang diaktifkan oleh autentikasi pass-through Microsoft Entra, juga dimungkinkan dengan kredensial cakupan database, seperti halnya akses anonim ke penyimpanan yang tersedia untuk umum. Untuk informasi selengkapnya, lihat Jenis otorisasi penyimpanan yang didukung.
- Dalam kumpulan SQL khusus Azure Synapse Analytics, kredensial tercakup database dapat menentukan token tanda tangan akses bersama (SAS), identitas aplikasi kustom, identitas terkelola ruang kerja, atau kunci akses penyimpanan.
SECRET = 'secret'
Menentukan rahasia yang diperlukan untuk autentikasi keluar. SECRET
diperlukan untuk mengimpor file dari penyimpanan Azure Blob. Untuk memuat dari penyimpanan Azure Blob ke Azure Synapse Analytics atau Gudang Data Paralel, Rahasia harus berupa Kunci Azure Storage.
Peringatan
Nilai kunci SAS mungkin dimulai dengan '?' (tanda tanya). Saat Anda menggunakan kunci SAS, Anda harus menghapus '?'. Jika tidak, upaya Anda mungkin diblokir.
Keterangan
Kredensial lingkup database adalah catatan yang berisi informasi autentikasi yang diperlukan untuk menyambungkan ke sumber daya di luar SQL Server. Sebagian besar kredensial mencakup pengguna dan kata sandi Windows.
Untuk melindungi informasi sensitif di dalam kredensial lingkup database, diperlukan kunci master database (DMK). DMK adalah kunci konten yang mengenkripsi rahasia dalam kredensial lingkup database. Database harus memiliki DMK sebelum kredensial lingkup database dapat dibuat. DMK harus dienkripsi dengan kata sandi yang kuat. Azure SQL Database akan membuat DMK dengan kata sandi yang kuat dan dipilih secara acak sebagai bagian dari pembuatan kredensial lingkup database, atau sebagai bagian dari membuat audit server. Pengguna tidak dapat membuat DMK pada database logis master
. Kata sandi kunci master tidak diketahui oleh Microsoft dan tidak dapat ditemukan setelah pembuatan. Untuk alasan ini, disarankan untuk membuat DMK sebelum membuat kredensial cakupan database. Untuk informasi selengkapnya, lihat MEMBUAT KUNCI MASTER (Transact-SQL).
Ketika IDENTITY adalah pengguna Windows, rahasianya bisa menjadi kata sandi. Rahasia dienkripsi menggunakan kunci master layanan (SMK). Jika SMK diregenerasi, rahasia dienkripsi ulang menggunakan SMK baru.
Saat memberikan izin untuk tanda tangan akses bersama (SAS) untuk digunakan dengan tabel eksternal PolyBase, pilih Kontainer dan Objek sebagai jenis sumber daya yang diizinkan. Jika tidak diberikan, Anda mungkin menerima kesalahan 16535 atau 16561 saat mencoba mengakses tabel eksternal.
Informasi tentang kredensial cakupan database terlihat dalam tampilan katalog sys.database_scoped_credentials .
Berikut adalah beberapa aplikasi kredensial cakupan database:
SQL Server menggunakan kredensial tercakup database untuk mengakses Azure Blob Storage non-publik atau kluster Hadoop yang diamankan Kerberos dengan PolyBase. Untuk mempelajari selengkapnya, lihat MEMBUAT SUMBER DATA EKSTERNAL (Transact-SQL).
Azure Synapse Analytics menggunakan kredensial cakupan database untuk mengakses Azure Blob Storage non-publik dengan PolyBase. Untuk mempelajari selengkapnya, lihat MEMBUAT SUMBER DATA EKSTERNAL (Transact-SQL). Untuk informasi selengkapnya tentang autentikasi penyimpanan Azure Synapse, lihat Menggunakan tabel eksternal dengan Synapse SQL.
SQL Database menggunakan kredensial lingkup database untuk fitur kueri elastisnya. Ini adalah kemampuan untuk mengkueri di beberapa pecahan database.
SQL Database menggunakan kredensial lingkup database untuk menulis file peristiwa yang diperluas ke Azure Blob Storage.
SQL Database menggunakan kredensial cakupan database untuk kumpulan elastis. Untuk informasi selengkapnya, lihat Menjinakkan pertumbuhan peledak dengan database elastis
BULK INSERT dan OPENROWSET menggunakan kredensial lingkup database untuk mengakses data dari Azure Blob Storage. Untuk informasi selengkapnya, lihat Contoh Akses Massal ke Data di Azure Blob Storage.
Gunakan kredensial tercakup database dengan fitur virtualisasi data PolyBase dan Azure SQL Managed Instance.
Untuk URL BACKUP TO dan RESTORE FROM URL, gunakan kredensial tingkat server melalui CREATE CREDENTIAL (Transact-SQL) sebagai gantinya.
Izin
Memerlukan izin CONTROL pada database.
SQL Server 2022
Mulai SQL Server 2022 (16.x) jenis konektor baru diperkenalkan, menggunakan panggilan REST-API menggantikan HADOOP. Untuk Azure Blob Storage dan Azure Data Lake Gen 2, satu-satunya metode autentikasi yang didukung adalah SHARED ACCESS SIGNATURE
.
Untuk informasi selengkapnya, lihat MEMBUAT SUMBER DATA EKSTERNAL.
Contoh
J. Membuat kredensial cakupan database untuk aplikasi Anda
Contoh berikut membuat kredensial cakupan database yang disebut AppCred
. Kredensial lingkup database berisi pengguna Mary5
Windows dan kata sandi.
-- Create a db master key if one does not already exist, using your own password.
CREATE MASTER KEY ENCRYPTION BY PASSWORD='<EnterStrongPasswordHere>';
-- Create a database scoped credential.
CREATE DATABASE SCOPED CREDENTIAL AppCred WITH IDENTITY = 'Mary5',
SECRET = '<EnterStrongPasswordHere>';
B. Membuat kredensial lingkup database untuk tanda tangan akses bersama
Contoh berikut membuat kredensial cakupan database yang dapat digunakan untuk membuat sumber data eksternal, yang dapat melakukan operasi massal, seperti BULK INSERT dan OPENROWSET.
-- Create a db master key if one does not already exist, using your own password.
CREATE MASTER KEY ENCRYPTION BY PASSWORD='<EnterStrongPasswordHere>';
-- Create a database scoped credential.
CREATE DATABASE SCOPED CREDENTIAL MyCredentials
WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
SECRET = 'QLYMgmSXMklt%2FI1U6DcVrQixnlU5Sgbtk1qDRakUBGs%3D';
C. Membuat kredensial tercakup database untuk Konektivitas PolyBase ke Azure Data Lake Store
Contoh berikut membuat kredensial cakupan database yang dapat digunakan untuk membuat sumber data eksternal, yang dapat digunakan oleh PolyBase di Azure Synapse Analytics.
Azure Data Lake Store menggunakan aplikasi Microsoft Entra untuk autentikasi layanan ke layanan.
Buat aplikasi Microsoft Entra dan dokumentasikan client_id Anda, OAuth_2.0_Token_EndPoint, dan Kunci sebelum Anda mencoba membuat kredensial cakupan database.
-- Create a db master key if one does not already exist, using your own password.
CREATE MASTER KEY ENCRYPTION BY PASSWORD='<EnterStrongPasswordHere>';
-- Create a database scoped credential.
CREATE DATABASE SCOPED CREDENTIAL ADL_User
WITH
IDENTITY = '<client_id>@<OAuth_2.0_Token_EndPoint>',
SECRET = '<key>'
;