Sdílet prostřednictvím


VYTVOŘENÍ PŘIHLAŠOVACÍCH ÚDAJŮ ZAMĚŘENÝCH NA DATABÁZI (Transact-SQL)

platí pro:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)databáze SQL 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

Syntax

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

Arguments

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ě.
Authentication T-SQL Supported Notes
Sdílený přístupový podpis (SAS) CREATE DATABASE SCOPED CREDENTIAL <credential_name> WITH IDENTITY = 'SHARED ACCESS SIGNATURE', SECRET = 'secret'; SQL Server 2022 a novější, 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, Azure SQL Managed Instance, SQL Server 2025 se službou Azure Arc Pro povolení Azure Arc viz Managed identity for SQL Server enabled by Azure Arc
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, SQL database in Microsoft Fabric * 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 a pozdější verze
Zdroje dat ODBC nebo Kerberos (MIT KDC) CREATE DATABASE SCOPED CREDENTIAL <credential_name> WITH IDENTITY = '<identity_name>', SECRET = '<secret>'; SQL Server 2019 a novější verze

* V SQL databázi v Microsoft Fabric, pokud není zadáno přihlašovací údaje zaměřené na databázi, autentizační metoda se výchozím nastavením nastaví na 'USER IDENTITY' a používá uživatelské přihlášení Entra ID jako kontext.

SECRET = 'tajné'

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.

Warning

Hodnota klíče SAS může začínat otazníkem (?). Pokud použijete klíč SAS, odeberte úvodní ?.

Remarks

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:

Permissions

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

Examples

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

D. Vytvoření přihlašovacích údajů s vymezeným oborem databáze pomocí spravované identity

Platí na: SQL Server 2025 (17.x)

SQL Server 2025 (17.x) zavádí podporu pro spravované identity Microsoft Entra. Informace o tom, jak používat spravovanou identitu s SQL Serverem povoleným službou Azure Arc, najdete v tématu Spravovaná identita.

SP_CONFIGURE 'allow server scoped db credentials',1; 
RECONFIGURE;  

CREATE DATABASE SCOPED CREDENTIAL [managed_id] 
WITH IDENTITY = 'Managed Identity'; 

#. Vytvořte přihlašovací údaje zaměřené na databázi pomocí Microsoft Entra ID

Platí na:Azure SQL Database, SQL database in Microsoft Fabric

V Azure SQL Database a SQL databázi v Microsoft Fabric je možné použít vlastní přihlášení Entra ID k autentizaci externího datového zdroje.

V SQL databázi v Microsoft Fabric, pokud není zadáno přihlašovací údaje zaměřené na databázi, autentizační metoda výchozí používá USER IDENTITY uživatelské přihlášení Entra ID jako kontext.

CREATE DATABASE SCOPED CREDENTIAL MyCredential
WITH IDENTITY = 'User Identity';