CREATE DATABASE SCOPED CREDENTIAL (Transact-SQL)
Berlaku untuk:
SQL Server (semua versi yang didukung)
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
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' ]
Catatan
Untuk melihat sintaks transact-SQL untuk SQL Server 2014 dan yang lebih lama, lihat Dokumentasi versi sebelumnya.
Argumen
credential_name Menentukan nama kredensial lingkup database yang sedang dibuat. credential_name tidak dapat dimulai dengan tanda angka (#). Kredensial sistem dimulai dengan ##.
IDENTITY ='identity_name' Menentukan nama akun yang akan digunakan saat menyambungkan ke luar server. Untuk mengimpor file dari penyimpanan Azure Blob menggunakan kunci bersama, nama identitas harus SHARED ACCESS SIGNATURE. Untuk memuat data ke Azure Synapse Analytics, nilai valid apa pun dapat digunakan untuk identitas. Untuk informasi selengkapnya tentang tanda tangan akses bersama, lihat Menggunakan Tanda Tangan Akses Bersama (SAS). Saat menggunakan Kerberos (Windows Active Directory atau MIT KDC) tidak menggunakan nama domain dalam argumen IDENTITY. Seharusnya hanya nama akun.
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.
Catatan
WITH IDENTITY tidak diperlukan jika kontainer di penyimpanan Azure Blob diaktifkan untuk akses anonim. Untuk contoh mengkueri penyimpanan Azure Blob, lihat Mengimpor ke dalam tabel dari file yang disimpan di penyimpanan Azure Blob.
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). Ketika Anda menggunakan kunci SAS, Anda harus menghapus '?' terkemuka. Jika tidak, upaya Anda mungkin diblokir.
Keterangan
Kredensial lingkup database adalah rekaman yang berisi informasi autentikasi yang diperlukan untuk menyambungkan ke sumber daya di luar SQL Server. Sebagian besar kredensial mencakup pengguna dan kata sandi Windows.
Sebelum membuat kredensial lingkup database, database harus memiliki kunci master untuk melindungi kredensial. Untuk informasi selengkapnya, lihat CREATE MASTER KEY (Transact-SQL).
Ketika IDENTITY adalah pengguna Windows, rahasianya bisa menjadi kata sandi. Rahasia dienkripsi menggunakan kunci master layanan. Jika kunci master layanan diregenerasi, rahasia dienkripsi ulang menggunakan kunci master layanan baru.
Informasi tentang kredensial lingkup database terlihat dalam tampilan katalog sys.database_scoped_credentials .
Berikut adalah beberapa aplikasi kredensial lingkup database:
SQL Server menggunakan kredensial lingkup database untuk mengakses penyimpanan blob Azure 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 penyimpanan blob Azure 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 globalnya. Ini adalah kemampuan untuk mengkueri di beberapa pecahan database.
SQL Database menggunakan kredensial lingkup database untuk menulis file peristiwa yang diperluas ke penyimpanan blob Azure.
SQL Database menggunakan kredensial lingkup database untuk kumpulan elastis. Untuk informasi selengkapnya, lihat Pertumbuhan ledakan jinak dengan database elastis
BULK INSERT dan OPENROWSET menggunakan kredensial lingkup database untuk mengakses data dari penyimpanan blob Azure. Untuk informasi selengkapnya, lihat Contoh Akses Massal ke Data di Azure Blob Storage.
Izin
Memerlukan izin CONTROL pada database.
Contoh
A. Membuat kredensial lingkup database untuk aplikasi Anda
Contoh berikut membuat kredensial lingkup 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 lingkup database yang dapat digunakan untuk membuat sumber data eksternal, yang dapat melakukan operasi massal, seperti BULK INSERT dan OPENROWSET. Tanda Tangan Akses Bersama tidak dapat digunakan dengan PolyBase di SQL Server, APS, atau Azure Synapse Analytics.
-- 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 lingkup 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 Azure Active Directory untuk Autentikasi Layanan ke Layanan. Buat aplikasi AAD dan dokumenter client_id, OAuth_2.0_Token_EndPoint, dan Kunci sebelum Anda mencoba membuat kredensial lingkup 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>'
;
