CREATE SYMMETRIC KEY (Transact-SQL)

Aktualisiert: 17. November 2008

Generiert einen symmetrischen Schlüssel und gibt seine Eigenschaften an.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

CREATE SYMMETRIC KEY key_name [ AUTHORIZATION owner_name ]
    WITH <key_options> [ , ... n ]
    ENCRYPTION BY <encrypting_mechanism> [ , ... n ] 

<encrypting_mechanism> ::=
    CERTIFICATE certificate_name 
    |
    PASSWORD = 'password' 
    |
    SYMMETRIC KEY symmetric_key_name 
    |
    ASYMMETRIC KEY asym_key_name    

<key_options> ::=
    KEY_SOURCE = 'pass_phrase'
    |
    ALGORITHM = <algorithm>
    |
    IDENTITY_VALUE = 'identity_phrase'

<algorithm> ::=
    DES | TRIPLE_DES | RC2 | RC4 | RC4_128
    | DESX | AES_128 | AES_192 | AES_256 

Argumente

  • key_name
    Der eindeutige Name des symmetrischen Schlüssels in der Datenbank. Die Namen von temporären Schlüsseln müssen mit einem Nummernzeichen (#) beginnen. Ein Beispiel: #temporaryKey900007. Das Erstellen eines symmetrischen Schlüssels, dessen Name mit mehreren Nummernzeichen (#) beginnt, ist nicht möglich.
  • AUTHORIZATION owner_name
    Gibt den Namen des Datenbankbenutzers oder der Anwendungsrolle an, der bzw. die diesen Schlüssel besitzen wird.
  • certificate_name
    Gibt den Namen des Zertifikats an, das zum Verschlüsseln des symmetrischen Schlüssels verwendet wird. Das Zertifikat muss bereits in der Datenbank vorhanden sein.
  • 'password'
    Gibt ein Kennwort an, von dem ein TRIPLE_DES-Schlüssel zum Sichern des symmetrischen Schlüssels abgeleitet wird. Die Kennwortkomplexität wird überprüft. Es sollten immer sichere Kennwörter verwendet werden.
  • symmetric_key_name
    Gibt einen symmetrischen Schlüssel an, der zum Verschlüsseln des erstellten Schlüssels verwendet wird. Der angegebene Schlüssel muss bereits in der Datenbank vorhanden und geöffnet sein.
  • asym_key_name
    Gibt einen asymmetrischen Schlüssel an, der zum Verschlüsseln des erstellten Schlüssels verwendet wird. Dieser asymmetrische Schlüssel muss bereits in der Datenbank vorhanden sein.
  • KEY_SOURCE ='pass_phrase'
    Gibt einen Passphrase an, aus dem der Schlüssel abgeleitet werden soll.
  • IDENTITY_VALUE ='identity_phrase'
    Gibt einen Identity-Ausdruck an, aus dem ein GUID zum Kennzeichnen von Daten generiert wird, die mit einem temporären Schlüssel verschlüsselt werden.

Hinweise

Bei der Erstellung eines symmetrischen Schlüssels muss dieser Schlüssel mithilfe mindestens eines der folgenden Elemente verschlüsselt werden: Zertifikat, Kennwort, symmetrischer Schlüssel oder asymmetrischer Schlüssel. Der Schlüssel kann mehrere Verschlüsselungen jedes Typs aufweisen. Ein einzelner symmetrischer Schlüssel kann demnach mit mehreren Zertifikaten, Kennwörtern, symmetrischen Schlüsseln und asymmetrischen Schlüsseln gleichzeitig verschlüsselt sein.

ms188357.Caution(de-de,SQL.90).gifVorsicht:
Wenn ein symmetrischer Schlüssel mit einem Kennwort anstatt mit einem öffentlichen Schlüssel des Datenbank-Hauptschlüssels verschlüsselt ist, wird der TRIPLE_DES-Verschlüsselungsalgorithmus verwendet. Daher werden Schlüssel, die mit einem starken Verschlüsselungsalgorithmus wie z. B. AES erstellt werden, selbst mit einem schwächeren Algorithmus verschlüsselt.

Mit dem optionalen Kennwort kann der symmetrische Schlüssel verschlüsselt werden, bevor der Schlüssel an mehrere Benutzer verteilt wird.

Temporäre Schlüssel befinden sich im Besitz des Benutzers, der sie erstellt. Temporäre Schlüssel gelten nur für die aktuelle Sitzung.

Von IDENTITY_VALUE wird ein GUID generiert, mit dem Daten gekennzeichnet werden, die mit dem neuen symmetrischen Schlüssel verschlüsselt werden. Mithilfe dieser Kennzeichnung können Schlüssel den verschlüsselten Daten zugeordnet werden. Von einem spezifischen Ausdruck wird immer derselbe GUID generiert. Nachdem ein Ausdruck zum Generieren eines GUIDs verwendet wurde, kann der Ausdruck in der aktuellen Sitzung nicht mehr wieder verwendet werden, es sei denn, der zugeordnete symmetrische Schlüssel wurde gelöscht. IDENTITY_VALUE ist eine optionale Klausel. Die Verwendung dieser Klausel wird jedoch empfohlen, wenn Sie mit einem temporären Schlüssel verschlüsselte Daten speichern.

Es gibt keinen Standardverschlüsselungsalgorithmus.

ms188357.note(de-de,SQL.90).gifWichtig:
Die Verwendung der RC4- und RC4_128-Datenstromchiffren wird zum Schutz vertraulicher Daten nicht empfohlen. Die Verschlüsselung mit solchen Schlüsseln wird von SQL Server 2005 nicht unterstützt.

Informationen zu symmetrischen Schlüsseln werden in der sys.symmetric_keys-Katalogsicht angezeigt.

Klarstellung hinsichtlich der DES-Algorithmen:

  • DESX wurde falsch benannt. Symmetrische Schlüssel, die mit ALGORITHM = DESX erstellt sind, verwenden eigentlich die TRIPLE DES-Verschlüsselung mit einem 192-Bit-Schlüssel. Der DESX-Algorithmus wird nicht bereitgestellt.
  • Symmetrische Schlüssel, die mit ALGORITHM = TRIPLE_DES erstellt sind, verwenden die TRIPLE DES-Verschlüsselung mit einem 128-Bit-Schlüssel.

Berechtigungen

Erfordert die ALTER ANY SYMMETRIC KEY-Berechtigung in der Datenbank. Falls die AUTHORIZATION-Klausel angegeben ist, ist die IMPERSONATE-Berechtigung für den Datenbankbenutzer oder die ALTER-Berechtigung für die Anwendungsrolle erforderlich. Falls die Verschlüsselung mit einem Zertifikat oder asymmetrischen Schlüssel erfolgt, ist die VIEW DEFINITION-Berechtigung für das Zertifikat oder den asymmetrischen Schlüssel erforderlich.

Beispiele

A. Erstellen eines symmetrischen Schlüssels

Im folgenden Beispiel wird ein symmetrischer Schlüssel mit Namen JanainaKey09 erstellt, wobei der AES 256-Algorithmus verwendet wird. Anschließend wird der neue Schlüssel mit dem Zertifikat Shipping04 verschlüsselt.

CREATE SYMMETRIC KEY JanainaKey09 WITH ALGORITHM = AES_256
    ENCRYPTION BY CERTIFICATE Shipping04;
GO

A. Erstellen eines temporären symmetrischen Schlüssels

Im folgenden Beispiel wird ein temporärer symmetrischer Schlüssel mit Namen #MarketingXXV aus dem folgenden Passphrase erstellt: The square of the hypotenuse is equal to the sum of the squares of the sides. Der Schlüssel wird mit einem GUID bereitgestellt, der aus der Zeichenfolge Pythagoras generiert und mit dem Zertifikat Marketing25 verschlüsselt wird.

CREATE SYMMETRIC KEY #MarketingXXV 
     WITH ALGORITHM = AES_128,
     KEY_SOURCE 
     = 'The square of the hypotenuse is equal to the sum of the squares of the sides',
     IDENTITY_VALUE = 'Pythagoras'
     ENCRYPTION BY CERTIFICATE Marketing25;
GO

Siehe auch

Verweis

ALTER SYMMETRIC KEY (Transact-SQL)
DROP SYMMETRIC KEY (Transact-SQL)
sys.symmetric_keys (Transact-SQL)

Andere Ressourcen

Auswählen eines Verschlüsselungsalgorithmus
Verschlüsselungshierarchie

Hilfe und Informationen

Informationsquellen für SQL Server 2005

Änderungsverlauf

Version Verlauf

05. Dezember 2005

Neuer Inhalt:
  • Ein wichtiger Hinweis zur Verwendung von RC4- und RC4_128-Datenstromchiffren wurde hinzugefügt.

17. November 2008

Neuer Inhalt:
  • Klarstellung zum DESX-Algorithmus wurde hinzugefügt.