Sdílet prostřednictvím


CREATE DATABASE SCOPED CREDENTIAL (Transact-SQL)

platí pro:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytický platformový systém (PDW)SQL databáze v Microsoft Fabric

Vytvoří přihlašovací údaje databáze. Přihlašovací údaje databáze nejsou mapovány na uživatele přihlášení k serveru nebo databázi. Přihlašovací údaje používá databáze k přístupu k externímu umístění, kdykoli databáze provádí operaci, která vyžaduje přístup.

Transact-SQL konvence syntaxe

Syntaxe

CREATE DATABASE SCOPED CREDENTIAL credential_name
WITH IDENTITY = 'identity_name'
    [ , SECRET = 'secret' ]
[ ; ]

Argumenty

credential_name

Určuje název vytvářených přihlašovacích údajů s vymezeným oborem databáze. credential_name nemůže začínat znaménkem čísla (#). Systémové přihlašovací údaje začínají na ##. Maximální délka credential_name je 128 znaků.

IDENTITA = 'identity_name'

Určuje název účtu, který se má použít při připojování mimo server.

  • Pokud chcete importovat soubor ze služby Azure Blob Storage nebo Azure Data Lake Storage pomocí sdíleného klíče, musí být SHARED ACCESS SIGNATUREnázev identity . Další informace o sdílených přístupových podpisech najdete v tématu Použití sdílených přístupových podpisů (SAS). Používá se IDENTITY = SHARED ACCESS SIGNATURE jenom pro sdílený přístupový podpis.
  • Pokud chcete importovat soubor ze služby Azure Blob Storage pomocí spravované identity, musí být MANAGED IDENTITYnázev identity .
  • Při použití protokolu Kerberos (Windows Active Directory nebo MIT KDC) nepoužívejte v argumentu IDENTITY název domény. Měl by to být jenom název účtu.
  • Pokud v instanci SQL Serveru vytvoříte přihlašovací údaje s vymezeným oborem databáze s přístupovým klíčem úložiště, který se použije jako , SECRETIDENTITY bude ignorován.
  • WITH IDENTITY není vyžadována, pokud je kontejner ve službě Azure Blob Storage povolený pro anonymní přístup. Příklad dotazování služby Azure Blob Storage pomocí OPENROWSET BULKpříkazu Import do tabulky ze souboru uloženého ve službě Azure Blob Storage.
  • V SYSTÉMU SQL Server 2022 (16.x) a novějších verzích nahrazuje konektor REST-API HADOOP. Pro Azure Blob Storage a Azure Data Lake Gen2 je jedinou podporovanou metodou ověřování sdílený přístupový podpis. Další informace naleznete v tématu CREATE EXTERNAL DATA SOURCE (Transact-SQL).
  • V SQL Serveru 2019 (15.x) je jediným externím zdrojem dat PolyBase, který podporuje ověřování protokolem Kerberos, Hadoop. Všechny ostatní externí zdroje dat (SQL Server, Oracle, Teradata, MongoDB, generic ODBC) podporují pouze základní ověřování.
  • Fondy SQL ve službě Azure Synapse Analytics zahrnují následující poznámky:
    • Pokud chcete načíst data do Azure Synapse Analytics, můžete použít IDENTITYlibovolnou platnou hodnotu .
    • V bezserverovém fondu SQL služby Azure Synapse Analytics můžou přihlašovací údaje s oborem databáze určovat spravovanou identitu pracovního prostoru, název instančního objektu nebo token sdíleného přístupového podpisu (SAS). Přístup prostřednictvím identity uživatele, který povoluje předávací ověřování Microsoft Entra, je také možné s přihlašovacími údaji s oborem databáze, stejně jako anonymní přístup k veřejně dostupnému úložišti. Další informace naleznete v tématu Podporované typy autorizace úložiště.
    • Ve vyhrazeném fondu SQL služby Azure Synapse Analytics můžou přihlašovací údaje s oborem databáze určovat token sdíleného přístupového podpisu (SAS), vlastní identitu aplikace, spravovanou identitu pracovního prostoru nebo přístupový klíč úložiště.
Autentizace T-SQL podporované poznámky
Sdílený přístupový podpis (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
Spravovaná identita CREATE DATABASE SCOPED CREDENTIAL <credential_name> WITH IDENTITY = 'MANAGED IDENTITY'; Azure SQL Database, spravovaná identita SQL
Předávací ověřování Microsoft Entra prostřednictvím identity uživatele CREATE DATABASE SCOPED CREDENTIAL <credential_name> WITH IDENTITY = 'USER IDENTITY'; Azure SQL Database V Azure Synapse si přečtěte téma Microsoft Entra Connect: Předávací ověřování
Základní ověřování pomocí přístupového klíče S3 CREATE DATABASE SCOPED CREDENTIAL <credential_name> WITH IDENTITY = 'S3 ACCESS KEY', SECRET = '<accesskey>:<secretkey>'; SQL Server 2022
Kerberos (Windows Active Directory nebo MIT KDC) nebo pro zdroje dat ODBC CREATE DATABASE SCOPED CREDENTIAL <credential_name> WITH IDENTITY = '<identity_name>', SECRET = '<secret>'; Verze SQL jen pro Hadoop

SECRET = 'secret'

Určuje tajný klíč vyžadovaný pro odchozí ověřování. SECRET k importu souboru ze služby Azure Blob Storage se vyžaduje. Pokud chcete načíst z úložiště objektů blob v Azure do Azure Synapse Analytics nebo paralelního datového skladu, musí tajný klíč být klíč úložiště Azure.

Výstraha

Hodnota klíče SAS může začínat řetězcem "?". (otazník). Když použijete klíč SAS, musíte odebrat úvodní "?". Jinak může být vaše úsilí zablokované.

Poznámky

Přihlašovací údaje v oboru databáze jsou záznam, který obsahuje ověřovací informace potřebné pro připojení k prostředku mimo SQL Server. Většina přihlašovacích údajů zahrnuje uživatele a heslo systému Windows.

K ochraně citlivých informací uvnitř přihlašovacích údajů v oboru databáze se vyžaduje hlavní klíč databáze (DMK). DMK je symetrický klíč, který šifruje tajný klíč v přihlašovacích údajích v oboru databáze. Aby bylo možné vytvořit přihlašovací údaje s oborem databáze, musí mít databáze dmK. DmK by měl být šifrovaný pomocí silného hesla. Azure SQL Database vytvoří dmK se silným, náhodně vybraným heslem jako součást vytváření přihlašovacích údajů s vymezeným oborem databáze nebo jako součást vytváření auditu serveru. Uživatelé nemůžou vytvořit DMK v logické master databázi. Heslo hlavního klíče je microsoftu neznámé a po vytvoření není zjistitelné. Z tohoto důvodu se doporučuje vytvořit sadu DMK před vytvořením přihlašovacích údajů s vymezeným oborem databáze. Další informace naleznete v tématu CREATE MASTER KEY (Transact-SQL).

Pokud je identita uživatelem Systému Windows, může být tajný kód heslem. Tajný klíč je šifrovaný pomocí hlavního klíče služby (SMK). Pokud se SMK znovu vygeneruje, tajný kód se znovu zašifruje pomocí nové sady SMK.

Při udělování oprávnění pro sdílené přístupové podpisy (SAS) pro použití s externí tabulkou PolyBase vyberte kontejner i objekt jako povolené typy prostředků. Pokud není uděleno, může se při pokusu o přístup k externí tabulce zobrazit chyba 16535 nebo 16561.

Informace o přihlašovacích údajích s vymezeným oborem databáze jsou viditelné v zobrazení katalogu sys.database_scoped_credentials .

Tady jsou některé aplikace přihlašovacích údajů s vymezeným oborem databáze:

Povolení

Vyžaduje oprávnění CONTROL k databázi.

Příklady

A. Vytvoření přihlašovacích údajů s vymezeným oborem databáze pro vaši aplikaci

Následující příklad vytvoří přihlašovací údaje s vymezeným oborem databáze s názvem AppCred. Přihlašovací údaje v oboru databáze obsahují uživatele Mary5 systému Windows a heslo.

-- 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. Vytvoření přihlašovacích údajů s vymezeným oborem databáze pro sdílený přístupový podpis

Následující příklad vytvoří přihlašovací údaje s vymezeným oborem databáze, které lze použít k vytvoření externího zdroje dat, který může provádět hromadné operace, například BULK INSERT (Transact-SQL) a 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. Vytvoření přihlašovacích údajů s vymezeným oborem databáze pro připojení PolyBase ke službě Azure Data Lake Store

Následující příklad vytvoří přihlašovací údaje s vymezeným oborem databáze, které lze použít k vytvoření externího zdroje dat, který může PolyBase používat ve službě Azure Synapse Analytics.

Azure Data Lake Store používá pro ověřování služeb aplikaci Microsoft Entra.

Vytvořte aplikaci Microsoft Entra a před pokusem o vytvoření přihlašovacích údajů s vymezeným oborem databáze client_id vytvořte aplikaci Microsoft Entra, OAuth_2.0_Token_EndPoint a klíč.

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