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 do databáze nejsou přiřazeny k přihlášení serveru nebo uživateli databáze. Databáze používá přihlašovací údaje k přístupu k externímu zdroji, když 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'

Specifikuje název účtu, který se používá při připojení 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žívání Kerberosu (Windows Active Directory nebo MIT KDC) nepoužívejte doménové jméno v argumentu IDENTITY . Měl by to být jenom název účtu.

  • V instanci SQL Serveru, pokud vytvoříte přihlašovací údaje zaměřené na databázi s přístupovým klíčem k úložišti používaným jako , SECRETIDENTITY je to ignorováno.

  • WITH IDENTITY není vyžadováno, pokud je kontejner v 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.

  • 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í.

  • SQL pooly v Azure Synapse Analytics zahrnují následující poznámky:

    • Pro načtení dat do Azure Synapse Analytics můžete použít jakoukoli platnou hodnotu pro IDENTITY.
    • 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 přes uživatelskou identitu, umožněný přihlášením uživatele s Microsoft Entra pass-through autentizací, je také možný s přihlašovacím přístupem zaměřeným na databázi, 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 1 V Azure Synapse viz User sign-in with Microsoft Entra pass-through authentication
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

1 V SQL databázi v Microsoft Fabric, pokud nespecifikujete přihlašovací údaje zaměřené na databázi, metoda autentizace se automaticky nastaví na 'USER IDENTITY' a používá uživatelský účet Microsoft 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. Databáze musí mít DMK, než můžete vytvořit jakékoli přihlašovací údaje podle rozsahu databáze. Zašifrujte DMK silným heslem. Azure SQL Database vytváří DMK se silným, náhodně vybraným heslem jako součást vytvoření přihlašovacích údajů zaměřených na databázi nebo jako součást auditu serveru.

Uživatelé nemůžou vytvořit DMK v logické master databázi. Heslo k DMK je Microsoftu neznámé a po vytvoření ho nelze zjistit. Vytvořte DMK před vytvořením přihlašovacího dokladu zaměřeného na databázi. Další informace naleznete v tématu CREATE MASTER KEY.

Když IDENTITY je uživatelem Windows, tajemství může být heslem. Tajemství je zašifrováno service master klíčem (SMK). Pokud SMK znovu vygenerujete, tajemství se znovu zašifruje s novým SMK.

Při udělování oprávnění pro sdílený přístupový podpis (SAS) pro použití s externí tabulkou PolyBase vyberte jako povolené typy zdrojů jak Kontejner, tak Objekt . Pokud tato oprávnění neudělíte, můžete při pokusu o přístup k externí tabulce dostat chybu 16535 nebo 16561.

Pro informace o přihlašovacích údajích zaměřených na databázi viz sys.database_scoped_credentials katalogový pohled.

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

Permissions

Vyžaduje CONTROL oprávnění 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.

Vytvořte DMK, pokud ještě neexistuje. Nepoužívejte prázdné heslo. Použijte silné heslo.

CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<password>';

Vytvořte databázově omezené přihlašovací údaje:

CREATE DATABASE SCOPED CREDENTIAL AppCred
WITH IDENTITY = 'Mary5',
     SECRET = '<password>';

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 vytváří databázově omezený přihlašovací údaje, které můžete použít k vytvoření externího datového zdroje. Tato kvalifikace umožňuje hromadné operace, jako jsou BULK INSERT a OPENROWSET BULK.

Vytvořte DMK, pokud ještě neexistuje. Nepoužívejte prázdné heslo. Použijte silné heslo.

CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<password>';

Vytvořte přihlašovací údaje s vymezeným oborem databáze. Nahraďte <key> příslušnou hodnotou.

CREATE DATABASE SCOPED CREDENTIAL MyCredentials
WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
     SECRET = '<key>';

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á aplikaci Microsoft Entra pro autentizaci mezi službami.

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íč.

Vytvořte DMK, pokud ještě neexistuje. Nepoužívejte prázdné heslo. Použijte silné heslo.

CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<password>';

Vytvořte přihlašovací údaje s vymezeným oborem databáze. Nahraďte <key> příslušnou hodnotou.

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) a novější verze

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

EXECUTE sp_configure 'allow server scoped db credentials', 1;
RECONFIGURE;
GO

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

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

Platí na: Azure SQL Database, SQL databázi v Microsoft Fabric

V Azure SQL Database a SQL databázi v Microsoft Fabric můžete použít svůj vlastní účet Microsoft Entra ID k ověření externího datového zdroje.

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

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