CREATE CREDENTIAL (Transact-SQL)
platí pro:SQL Serverazure SQL Managed Instance
Vytvoří přihlašovací údaje na úrovni serveru. Přihlašovací údaje 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. Například uložení zálohy databáze do některého umístění může vyžadovat, aby SQL Server poskytl speciální přihlašovací údaje pro přístup k danému umístění. Další informace najdete v tématu
Poznámka
Pokud chcete přihlašovací údaje nastavit na úrovni databáze, použijteCREATE CREDENTIAL
.
- Vytvořte přihlašovací údaje s vymezeným oborem databáze s
CREATE DATABASE SCOPED CREDENTIAL
, aby byla databáze přenosnější. Když se databáze přesune na nový server, přihlašovací údaje s vymezeným oborem databáze se s ní přesunou. - Použijte přihlašovací údaje s vymezeným oborem databáze ve službě SQL Database.
- Používejte přihlašovací údaje v oboru databáze s PolyBase a funkcemi virtualizace dat azure SQL Managed Instance.
Syntax
CREATE CREDENTIAL credential_name
WITH IDENTITY = 'identity_name'
[ , SECRET = 'secret' ]
[ FOR CRYPTOGRAPHIC PROVIDER cryptographic_provider_name ]
Argumenty
credential_name
Určuje název vytvářených přihlašovacích údajů. credential_name nemůže začínat znaménkem čísla (#). Systémové přihlašovací údaje začínají ##.
Důležitý
Při použití sdíleného přístupového podpisu (SAS) musí tento název odpovídat cestě ke kontejneru, musí začínat https a nesmí obsahovat lomítko. Viz příklad D.
Pokud se používá k zálohování a obnovení pomocí externích datových platforem, jako jsou platformy kompatibilní se službou Azure Blob Storage nebo S3, poskytuje následující tabulka běžné cesty:
Externí zdroj dat | Cesta k umístění | Příklad |
---|---|---|
Azure Blob Storage (V2) | https://<mystorageaccountname>.blob.core.windows.net/<mystorageaccountcontainername> |
příklad D. |
Úložiště objektů kompatibilní s S3 | - Úložiště kompatibilní s S3: s3://<server_name>:<port>/ – AWS S3: s3://<bucket_name>.S3.<region>.amazonaws.com[:port]/<folder> nebo s3://s3.<region>.amazonaws.com[:port]/<bucket_name>/<folder> |
příklad F. |
IDENTITA ='identity_name'
Určuje název účtu, který se má použít při připojování mimo server. Pokud se přihlašovací údaje používají pro přístup ke službě Azure Key Vault, IDENTITY je název trezoru klíčů. Viz příklad C níže. Pokud přihlašovací údaje používají sdílený přístupový podpis (SAS), identita
Důležitý
Azure SQL Database podporuje pouze identity služby Azure Key Vault a sdílených přístupových podpisů. Uživatelské identity systému Windows nejsou podporovány.
SECRET ='tajný'
Určuje tajný klíč vyžadovaný pro odchozí ověřování.
Pokud se přihlašovací údaje používají pro přístup ke službě Azure Key Vault, musí být argument
PRO CRYPTOGRAPHIC_PROVIDER_NAME ZPROSTŘEDKOVATELE KRYPTOGRAFICKÝCH SLUŽEB
Určuje název
Poznámky
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. Pokud se hlavní klíč služby znovu vygeneruje, tajný klíč se znovu zašifruje pomocí nového hlavního klíče služby.
Po vytvoření přihlašovacích údajů ho můžete namapovat na přihlášení k SQL Serveru pomocí CREATE LOGIN nebo ALTER LOGIN. Přihlášení k SQL Serveru je možné namapovat pouze na jeden přihlašovací údaj, ale jeden přihlašovací údaj lze namapovat na více přihlášení SQL Serveru. Další informace najdete v tématu
Informace o přihlašovacích údajích jsou viditelné v zobrazení katalogu sys.credentials.
Pokud pro zprostředkovatele nejsou namapované přihlašovací údaje, použije se přihlašovací údaje mapované na účet služby SQL Serveru.
Přihlášení může mít namapovaných více přihlašovacích údajů, pokud se používají s výraznými poskytovateli. Pro každé přihlášení musí existovat pouze jeden mapovaný přihlašovací údaj na jednoho zprostředkovatele. Stejné přihlašovací údaje je možné mapovat na jiná přihlášení.
Dovolení
Vyžaduje ALTER ANY CREDENTIAL oprávnění.
Příklady
A. Vytvoření přihlašovacích údajů pro identitu Windows
Následující příklad vytvoří přihlašovací údaje s názvem AlterEgo
. Přihlašovací údaje obsahují uživatelské Mary5
Windows a heslo.
CREATE CREDENTIAL AlterEgo WITH IDENTITY = 'Mary5',
SECRET = '<EnterStrongPasswordHere>';
GO
B. Vytvoření přihlašovacích údajů pro EKM
Následující příklad používá dříve vytvořený účet s názvem User1OnEKM
v modulu EKM prostřednictvím nástrojů pro správu EKM se základním typem účtu a heslem. Účet správce systému na serveru vytvoří přihlašovací údaje, které se používají pro připojení k účtu EKM, a přiřadí ho k účtu User1
SQL Serveru:
CREATE CREDENTIAL CredentialForEKM
WITH IDENTITY='User1OnEKM', SECRET='<EnterStrongPasswordHere>'
FOR CRYPTOGRAPHIC PROVIDER MyEKMProvider;
GO
/* Modify the login to assign the cryptographic provider credential */
ALTER LOGIN User1
ADD CREDENTIAL CredentialForEKM;
C. Vytvoření přihlašovacích údajů pro EKM pomocí služby Azure Key Vault
Následující příklad vytvoří přihlašovací údaje SQL Serveru pro databázový stroj, který se použije při přístupu ke službě Azure Key Vault pomocí konektoru SQL Serveru pro microsoft Azure Key Vault. Úplný příklad použití konektoru SQL Serveru najdete v tématu Rozšiřitelná správa klíčů pomocí služby Azure Key Vault (SQL Server).
Důležitý
Argument IDENTITYCREATE CREDENTIAL vyžaduje název trezoru klíčů. Argument
V následujícím příkladu je id klienta (00001111-aaaa-2222-bbbb-3333cccc4444
) proškrtnuto a zadáno jako řetězcové 11111111222233334444555555555555
a Tajné je reprezentován řetězcem SECRET_DBEngine
.
USE master;
CREATE CREDENTIAL Azure_EKM_TDE_cred
WITH IDENTITY = 'ContosoKeyVault',
SECRET = '11111111222233334444555555555555SECRET_DBEngine'
FOR CRYPTOGRAPHIC PROVIDER AzureKeyVault_EKM_Prov ;
Následující příklad vytvoří stejné přihlašovací údaje pomocí proměnných pro id klienta a tajných kódů řetězce, které jsou pak zřetězeny dohromady a tvoří SECRET argument. Funkce REPLACE slouží k odebrání pomlček z ID klienta.
DECLARE @AuthClientId uniqueidentifier = '11111111-AAAA-BBBB-2222-CCCCCCCCCCCC';
DECLARE @AuthClientSecret varchar(200) = 'SECRET_DBEngine';
DECLARE @pwd varchar(max) = REPLACE(CONVERT(varchar(36), @AuthClientId) , '-', '') + @AuthClientSecret;
EXEC ('CREATE CREDENTIAL Azure_EKM_TDE_cred
WITH IDENTITY = ''ContosoKeyVault'', SECRET = ''' + @PWD + '''
FOR CRYPTOGRAPHIC PROVIDER AzureKeyVault_EKM_Prov ;');
D. Vytvoření přihlašovacích údajů pomocí tokenu SAS
platí pro: SQL Server 2014 (12.x) prostřednictvím aktuální verze a Azure SQL Managed Instance.
Následující příklad vytvoří přihlašovací údaje sdíleného přístupového podpisu pomocí tokenu SAS. Kurz vytvoření uložených zásad přístupu a sdíleného přístupového podpisu v kontejneru Azure a následném vytvoření přihlašovacích údajů pomocí sdíleného přístupového podpisu najdete v tématu Kurz: Použití služby Microsoft Azure Blob Storage s databázemi SQL Serveru.
Důležitý
Argument CREDENTIAL NAME vyžaduje, aby název odpovídal cestě ke kontejneru, začínal https a neobsahovává koncové lomítko. Argument identity
Tajný kód SDÍLENÝ PŘÍSTUPOVÝ PODPIS by neměl mít úvodní ?.
USE master
CREATE CREDENTIAL [https://<mystorageaccountname>.blob.core.windows.net/<mystorageaccountcontainername>] -- this name must match the container path, start with https and must not contain a trailing forward slash.
WITH IDENTITY='SHARED ACCESS SIGNATURE' -- this is a mandatory string and do not change it.
, SECRET = 'sharedaccesssignature' -- this is the shared access signature token
GO
E. Vytvoření přihlašovacích údajů pro spravovanou identitu
Následující příklad vytvoří přihlašovací údaje, které představují spravovanou identitu Azure SQL nebo služby Azure Synapse. V tomto případě neplatí heslo a tajný klíč.
CREATE CREDENTIAL ServiceIdentity WITH IDENTITY = 'Managed Identity';
GO
F. Vytvoření přihlašovacích údajů pro zálohování nebo obnovení do úložiště kompatibilního s S3
platí pro: SQL Server 2022 (16.x) a novější verze
Otevřený standard kompatibilní s S3 poskytuje cesty k úložišti a podrobnosti, které se můžou lišit v závislosti na platformě úložiště. Další informace najdete v tématu zálohování SQL Serveru na adresu URL pro úložiště objektů kompatibilní s S3.
Pro většinu úložiště kompatibilních s S3 tento příklad vytvoří přihlašovací údaje na úrovni serveru a provede BACKUP TO URL
.
USE [master];
CREATE CREDENTIAL [s3://<endpoint>:<port>/<bucket>]
WITH
IDENTITY = 'S3 Access Key',
SECRET = '<AccessKeyID>:<SecretKeyID>';
GO
BACKUP DATABASE [SQLTestDB]
TO URL = 's3://<endpoint>:<port>/<bucket>/SQLTestDB.bak'
WITH FORMAT /* overwrite any existing backup sets */
, STATS = 10
, COMPRESSION;
AWS S3 ale podporuje dva různé standardy adresy URL.
-
S3://<BUCKET_NAME>.S3.<REGION>.AMAZONAWS.COM/<FOLDER>
(výchozí) S3://S3.<REGION>.AMAZONAWS.COM/<BUCKET_NAME>/<FOLDER>
Existuje několik přístupů k úspěšnému vytvoření přihlašovacích údajů pro AWS S3:
Do názvu přihlašovacích údajů zadejte název kontejneru a cestu a oblast.
-- S3 bucket name: datavirtualizationsample -- S3 bucket region: us-west-2 -- S3 bucket folder: backup CREATE CREDENTIAL [s3://datavirtualizationsample.s3.us-west-2.amazonaws.com/backup] WITH IDENTITY = 'S3 Access Key' , SECRET = 'accesskey:secretkey'; GO BACKUP DATABASE [AdventureWorks2022] TO URL = 's3://datavirtualizationsample.s3.us-west-2.amazonaws.com/backup/AdventureWorks2022.bak' WITH COMPRESSION, FORMAT, MAXTRANSFERSIZE = 20971520; GO
Nebo
CREATE CREDENTIAL [s3://s3.us-west-2.amazonaws.com/datavirtualizationsample/backup] WITH IDENTITY = 'S3 Access Key' , SECRET = 'accesskey:secretkey'; GO BACKUP DATABASE [AdventureWorks2022] TO URL = 's3://s3.us-west-2.amazonaws.com/datavirtualizationsample/backup/AdventureWorks2022.bak' WITH COMPRESSION, FORMAT, MAXTRANSFERSIZE = 20971520; GO
Nebo zadejte název kontejneru a cestu v názvu přihlašovacích údajů, ale parametrizujte oblast v rámci každého příkazu
BACKUP
/RESTORE
. VBACKUP_OPTIONS
aRESTORE_OPTIONS
použijte řetězec oblasti specifické pro S3, například'{"s3": {"region":"us-west-2"}}'
.-- S3 bucket name: datavirtualizationsample -- S3 bucket region: us-west-2 -- S3 bucket folder: backup CREATE CREDENTIAL [s3://datavirtualizationsample.s3.amazonaws.com/backup] WITH IDENTITY = 'S3 Access Key' , SECRET = 'accesskey:secretkey'; GO BACKUP DATABASE [AdventureWorks2022] TO URL = 's3://datavirtualizationsample.s3.amazonaws.com/backup/AdventureWorks2022.bak' WITH BACKUP_OPTIONS = '{"s3": {"region":"us-west-2"}}' -- REGION AS PARAMETER) , COMPRESSION, FORMAT, MAXTRANSFERSIZE = 20971520; GO RESTORE DATABASE AdventureWorks2022_1 FROM URL = 's3://datavirtualizationsample.s3.amazonaws.com/backup/AdventureWorks2022.bak' WITH MOVE 'AdventureWorks2022' TO 'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\DATA\AdventureWorks2022_1.mdf' , MOVE 'AdventureWorks2022_log' TO 'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\DATA\AdventureWorks2022_1.ldf' , STATS = 10, RECOVERY , REPLACE, RESTORE_OPTIONS = '{"s3": {"region":"us-west-2"}}'; -- REGION AS PARAMETER) GO
Související obsah
- přihlašovacích údajů
(databázový stroj) - ALTER CREDENTIAL (Transact-SQL)
- DROP CREDENTIAL (Transact-SQL)
- CREATE DATABASE SCOPED CREDENTIAL (Transact-SQL)
-
CREATE LOGIN (Transact-SQL) -
ALTER LOGIN (Transact-SQL) -
sys.credentials (Transact-SQL) - lekci 2: Vytvoření přihlašovacích údajů SQL Serveru pomocí sdíleného přístupového podpisu
- sdílených přístupových podpisů