CREATE DATABASE SCOPED CREDENTIAL (Transact-SQL)

Berlaku untuk:yes SQL Server (semua versi yang didukung) YesAzure SQL Database YesAzure SQL Managed Instance yesAzure Synapse Analytics yesAnalytics 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.

Topic link iconKonvensi Sintaksis T-SQL

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:

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>'
;

Informasi selengkapnya