Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL-databas i Microsoft Fabric
Skapar en databasautentiseringsuppgift. En databasautentiseringsuppgift mappas inte till en serverinloggning eller databasanvändare. Autentiseringsuppgifterna används av databasen för åtkomst till den externa platsen när databasen utför en åtgärd som kräver åtkomst.
Transact-SQL syntaxkonventioner
Syntax
CREATE DATABASE SCOPED CREDENTIAL credential_name
WITH IDENTITY = 'identity_name'
[ , SECRET = 'secret' ]
[ ; ]
Argumentpunkter
credential_name
Anger namnet på databasens begränsade autentiseringsuppgifter som skapas.
credential_name kan inte börja med talet (#
). Systemautentiseringsuppgifter börjar med ##
. Den maximala längden på credential_name är 128 tecken.
IDENTITY = "identity_name"
Anger namnet på det konto som ska användas vid anslutning utanför servern.
- Om du vill importera en fil från Azure Blob Storage eller Azure Data Lake Storage med en delad nyckel måste identitetsnamnet vara
SHARED ACCESS SIGNATURE
. Mer information om signaturer för delad åtkomst finns i Använda signaturer för delad åtkomst (SAS). AnvändIDENTITY = SHARED ACCESS SIGNATURE
endast för en signatur för delad åtkomst. - Om du vill importera en fil från Azure Blob Storage med hjälp av en hanterad identitet måste identitetsnamnet vara
MANAGED IDENTITY
. - När du använder Kerberos (Windows Active Directory eller MIT KDC) ska du inte använda domännamnet
IDENTITY
i argumentet. Det ska bara vara kontonamnet. - I en SQL Server-instans ignoreras om du skapar en databasomfattande autentiseringsuppgift med en lagringsåtkomstnyckel som används som
SECRET
.IDENTITY
-
WITH IDENTITY
krävs inte om containern i Azure Blob Storage är aktiverad för anonym åtkomst. Ett exempel på frågor om Azure Blob Storage medOPENROWSET BULK
finns i Importera till en tabell från en fil som lagras i Azure Blob Storage. - I SQL Server 2022 (16.x) och senare versioner ersätter REST-API-anslutningsappen HADOOP. För Azure Blob Storage och Azure Data Lake Gen 2 är den enda autentiseringsmetod som stöds signatur för delad åtkomst. Mer information finns i SKAPA EXTERN DATAKÄLLA (Transact-SQL).
- I SQL Server 2019 (15.x) är Hadoop den enda externa PolyBase-datakällan som stöder Kerberos-autentisering. Alla andra externa datakällor (SQL Server, Oracle, Teradata, MongoDB, generisk ODBC) stöder endast grundläggande autentisering.
- SQL-pooler i Azure Synapse Analytics innehåller följande kommentarer:
- Om du vill läsa in data i Azure Synapse Analytics kan alla giltiga värden användas för
IDENTITY
. - I en serverlös SQL-pool i Azure Synapse Analytics kan autentiseringsuppgifter med databasomfattning ange en hanterad identitet för arbetsytan, tjänstens huvudnamn eller signatur för delad åtkomst (SAS). Åtkomst via en användaridentitet, som aktiveras av Microsoft Entra-direktautentisering, är också möjlig med en databasomfångad autentiseringsuppgift, liksom anonym åtkomst till offentligt tillgänglig lagring. Mer information finns i Typer av lagringsauktorisering som stöds.
- I en dedikerad SQL-pool i Azure Synapse Analytics kan autentiseringsuppgifter med databasomfattning ange sas-token (signatur för delad åtkomst), anpassad programidentitet, arbetsytehanterad identitet eller lagringsåtkomstnyckel.
- Om du vill läsa in data i Azure Synapse Analytics kan alla giltiga värden användas för
autentisering | T-SQL | Stödd | Anteckningar |
---|---|---|---|
Signatur för delad åtkomst (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 | |
Hanterad identitet | CREATE DATABASE SCOPED CREDENTIAL <credential_name> WITH IDENTITY = 'MANAGED IDENTITY'; |
Azure SQL Database, SQL Managed Identity | |
Microsoft Entra-direktautentisering via användaridentitet | CREATE DATABASE SCOPED CREDENTIAL <credential_name> WITH IDENTITY = 'USER IDENTITY'; |
Azure SQL Database | I Azure Synapse läser du Microsoft Entra Connect: Direktautentisering |
Grundläggande S3-åtkomstnyckelautentisering | CREATE DATABASE SCOPED CREDENTIAL <credential_name> WITH IDENTITY = 'S3 ACCESS KEY', SECRET = '<accesskey>:<secretkey>'; |
SQL Server 2022 | |
Kerberos (Windows Active Directory eller MIT KDC) eller för ODBC-datakällor |
CREATE DATABASE SCOPED CREDENTIAL <credential_name> WITH IDENTITY = '<identity_name>', SECRET = '<secret>' ; |
Hadoop-versioner av SQL |
SECRET = 'secret'
Anger hemligheten som krävs för utgående autentisering.
SECRET
krävs för att importera en fil från Azure Blob Storage. Om du vill läsa in från Azure Blob Storage till Azure Synapse Analytics eller Parallel Data Warehouse måste hemligheten vara Azure Storage-nyckeln.
Varning
SAS-nyckelvärdet kan börja med ett "?" (frågetecken). När du använder SAS-nyckeln måste du ta bort inledande ?. Annars kan dina ansträngningar blockeras.
Anmärkningar
En databasomfattande autentiseringsuppgift är en post som innehåller den autentiseringsinformation som krävs för att ansluta till en resurs utanför SQL Server. De flesta autentiseringsuppgifterna innehåller en Windows-användare och ett lösenord.
För att skydda känslig information i databasens begränsade autentiseringsuppgifter krävs en databashuvudnyckel (DMK). DMK är en symmetrisk nyckel som krypterar hemligheten i databasens begränsade autentiseringsuppgifter. Databasen måste ha en DMK innan några databasomfattningsautentiseringsuppgifter kan skapas. En DMK ska krypteras med ett starkt lösenord. Azure SQL Database skapar en DMK med ett starkt, slumpmässigt valt lösenord som en del av skapandet av databasens begränsade autentiseringsuppgifter eller som en del av att skapa en servergranskning. Användare kan inte skapa DMK på en logisk master
databas. Huvudnyckellösenordet är okänt för Microsoft och kan inte identifieras när det har skapats. Därför rekommenderar vi att du skapar en DMK innan du skapar en databasomfattande autentiseringsuppgift. Mer information finns i CREATE MASTER KEY (Transact-SQL).
När IDENTITY är en Windows-användare kan hemligheten vara lösenordet. Hemligheten krypteras med hjälp av tjänstens huvudnyckel (SMK). Om SMK:n återskapas krypteras hemligheten igen med hjälp av den nya SMK:n.
När du beviljar behörigheter för en signatur för delad åtkomst (SAS) för användning med en extern PolyBase-tabell väljer du både Container och Object som tillåtna resurstyper. Om du inte beviljas kan du få fel 16535 eller 16561 när du försöker komma åt den externa tabellen.
Information om autentiseringsuppgifter med databasomfattning visas i sys.database_scoped_credentials katalogvy.
Här följer några program med autentiseringsuppgifter med databasomfattning:
SQL Server använder en databasomfattande autentiseringsuppgifter för åtkomst till icke-offentliga Azure Blob Storage- eller Kerberos-skyddade Hadoop-kluster med PolyBase. Mer information finns i SKAPA EXTERN DATAKÄLLA (Transact-SQL).
Azure Synapse Analytics använder en databasomfattande autentiseringsuppgifter för åtkomst till icke-offentlig Azure Blob Storage med PolyBase. Mer information finns i SKAPA EXTERN DATAKÄLLA (Transact-SQL). Mer information om Azure Synapse-lagringsautentisering finns i Använda externa tabeller med Synapse SQL.
SQL Database använder databasomfattande autentiseringsuppgifter för sin elastiska frågefunktion . Det här är möjligheten att köra frågor mot flera databasskärvor.
SQL Database använder databasomfattande autentiseringsuppgifter för att skriva utökade händelsefiler till Azure Blob Storage.
SQL Database använder databasomfattande autentiseringsuppgifter för elastiska pooler. Mer information finns i Tame explosiv tillväxt med elastiska databaser
BULK INSERT (Transact-SQL) och OPENROWSET (Transact-SQL) använder databasomfångsautentiseringsuppgifter för att komma åt data från Azure Blob Storage. Mer information finns i Exempel på massåtkomst till data i Azure Blob Storage.
Använd databasomfattande autentiseringsuppgifter med PolyBase- och Azure SQL Managed Instance-datavirtualisering funktioner.
För
BACKUP TO URL
ochRESTORE FROM URL
använder du autentiseringsuppgifter på servernivå via CREATE CREDENTIAL (Transact-SQL) i stället.
Behörigheter
Kräver KONTROLL-behörighet för databasen.
Exempel
A. Skapa en databasomfattande autentiseringsuppgift för ditt program
I följande exempel skapas databasens omfångsbegränsade autentiseringsuppgifter med namnet AppCred
. Databasens begränsade autentiseringsuppgifter innehåller Windows-användaren Mary5
och ett lösenord.
-- 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. Skapa en databasomfattande autentiseringsuppgift för en signatur för delad åtkomst
I följande exempel skapas en databasomfattande autentiseringsuppgift som kan användas för att skapa en extern datakälla, som kan utföra massåtgärder, till exempel BULK INSERT (Transact-SQL) och 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. Skapa en databasomfattande autentiseringsuppgift för PolyBase-anslutning till Azure Data Lake Store
I följande exempel skapas en databasomfattande autentiseringsuppgift som kan användas för att skapa en extern datakälla, som kan användas av PolyBase i Azure Synapse Analytics.
Azure Data Lake Store använder ett Microsoft Entra-program för tjänst-till-tjänst-autentisering.
Skapa ett Microsoft Entra-program och dokumentera din client_id, OAuth_2.0_Token_EndPoint och Nyckel innan du försöker skapa en databasomfattande autentiseringsuppgift.
-- 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>'
;