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.
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
IDENTITY
argumen . Ini seharusnya hanya nama akun. - Dalam instans SQL Server, jika membuat kredensial cakupan database dengan Kunci Akses Penyimpanan yang digunakan sebagai
SECRET
,IDENTITY
diabaikan. -
WITH IDENTITY
tidak diperlukan jika kontainer di penyimpanan Azure Blob diaktifkan untuk akses anonim. Untuk contoh mengkueri penyimpanan Azure Blob denganOPENROWSET BULK
, lihat Mengimpor ke dalam tabel dari file yang disimpan di penyimpanan Azure Blob. - Di SQL Server 2022 (16.x) dan versi yang lebih baru, konektor REST-API menggantikan HADOOP. Untuk Azure Blob Storage dan Azure Data Lake Gen 2, satu-satunya metode autentikasi yang didukung adalah tanda tangan akses bersama. Untuk informasi selengkapnya, lihat CREATE EXTERNAL DATA SOURCE (Transact-SQL).
- Di SQL Server 2019 (15.x), 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.
- Kumpulan SQL di Azure Synapse Analytics menyertakan catatan berikut:
- 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.
- Untuk memuat data ke Azure Synapse Analytics, nilai apa pun yang valid dapat digunakan untuk
Autentikasi | T-SQL | Dukungan | Catatan |
---|---|---|---|
Tanda tangan akses bersama (SAS) | CREATE DATABASE SCOPED CREDENTIAL <credential_name> WITH IDENTITY = 'SHARED ACCESS SIGNATURE', SECRET = 'secret'; |
SQL Server 2022, Azure SQL Managed Instance, Azure Synapse Analytics, Azure SQL Database | |
Identitas yang Dikelola | CREATE DATABASE SCOPED CREDENTIAL <credential_name> WITH IDENTITY = 'MANAGED IDENTITY'; |
Azure SQL Database, Identitas Terkelola SQL | |
Autentikasi pass-through Microsoft Entra melalui Identitas Pengguna | CREATE DATABASE SCOPED CREDENTIAL <credential_name> WITH IDENTITY = 'USER IDENTITY'; |
Azure SQL Database | Di Azure Synapse, lihat Microsoft Entra Connect: Autentikasi Pass-through |
Autentikasi S3 Access Key Basic | CREATE DATABASE SCOPED CREDENTIAL <credential_name> WITH IDENTITY = 'S3 ACCESS KEY', SECRET = '<accesskey>:<secretkey>'; |
SQL Server 2022 | |
Kerberos (Windows Active Directory atau MIT KDC) atau untuk sumber data ODBC |
CREATE DATABASE SCOPED CREDENTIAL <credential_name> WITH IDENTITY = '<identity_name>', SECRET = '<secret>' ; |
Versi SQL khusus Hadoop |
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 (Transact-SQL) dan OPENROWSET (Transact-SQL) 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
BACKUP TO URL
danRESTORE FROM URL
, gunakan kredensial tingkat server melalui CREATE CREDENTIAL (Transact-SQL) sebagai gantinya.
Izin
Memerlukan izin CONTROL pada database.
Contoh
J. Membuat kredensial lingkup 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 (Transact-SQL) dan OPENROWSET (Transact-SQL).
-- 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 cakupan 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>'
;