Freigeben über


CREATE ASYMMETRIC KEY (Transact-SQL)

Erstellt einen asymmetrischen Schlüssel in der Datenbank.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

CREATE ASYMMETRIC KEY Asym_Key_Name 
   [ AUTHORIZATION database_principal_name ]
   {
      FROM <Asym_Key_Source>
      |
      WITH ALGORITHM = { RSA_512 | RSA_1024 | RSA_2048 }
   }
      [ ENCRYPTION BY PASSWORD = 'password' ] 

<Asym_Key_Source>::=
   FILE = 'path_to_strong-name_file'
   |
   EXECUTABLE FILE = 'path_to_executable_file'
   |
   ASSEMBLY Assembly_Name

Argumente

  • FROM Asym_Key_Source
    Gibt die Quelle an, aus der das asymmetrische Schlüsselpaar geladen werden soll.
  • AUTHORIZATION database_principal_name
    Gibt den Besitzer des asymmetrischen Schlüssels an. Eine Rolle oder Gruppe kann nicht als Besitzer angegeben sein. Wird diese Option ausgelassen, wird der aktuelle Benutzer als Besitzer verwendet.
  • FILE ='path_to_strong-name_file'
    Gibt den Pfad zu einer Datei mit starkem Namen an, aus der das Schlüsselpaar geladen werden soll.
  • EXECUTABLE FILE ='path_to_executable_file'
    Gibt eine Assemblydatei an, aus der der öffentliche Schlüssel geladen werden soll.
  • ASSEMBLY Assembly_Name
    Gibt den Namen einer Assembly an, aus der der öffentliche Schlüssel geladen werden soll.
  • ENCRYPTION BY PASSWORD ='password'
    Gibt das Kennwort an, mit dem der private Schlüssel verschlüsselt werden soll. Falls diese Klausel nicht angegeben ist, wird der private Schlüssel mit dem Datenbank-Hauptschlüssel verschlüsselt. password ist maximal 128 Zeichen lang.

Hinweise

Ein asymmetrischer Schlüssel ist eine sicherungsfähige Entität auf Datenbankebene. Standardmäßig enthält diese Entität sowohl einen öffentlichen als auch einen privaten Schlüssel. Bei einer Ausführung ohne die FROM-Klausel generiert CREATE ASYMMETRIC KEY ein neues Schlüsselpaar. Bei einer Ausführung mit FROM-Klausel importiert CREATE ASYMMETRIC KEY ein Schlüsselpaar aus einer Datei oder einen öffentlichen Schlüssel aus einer Assembly.

Standardmäßig ist der private Schlüssel mit dem Datenbank-Hauptschlüssel geschützt. Falls kein Datenbank-Hauptschlüssel erstellt wurde, ist ein Kennwort zum Schützen des privaten Schlüssels erforderlich. Falls ein Datenbank-Hauptschlüssel vorhanden ist, ist das Kennwort optional.

Der private Schlüssel kann eine Länge von 512, 1024 oder 2048 Bits aufweisen.

Berechtigungen

Erfordert die CREATE ASYMMETRIC KEY-Berechtigung in der Datenbank. Falls die AUTHORIZATION-Klausel angegeben ist, ist die IMPERSONATE-Berechtigung für den Datenbankprinzipal oder die ALTER-Berechtigung für die Anwendungsrolle erforderlich.

Beispiele

A. Erstellen eines asymmetrischen Schlüssels

Im folgenden Beispiel wird der asymmetrische Schlüssel PacificSales09 mithilfe des RSA_2048-Algorithmus erstellt, und der private Schlüssel wird mit einem Kennwort geschützt.

CREATE ASYMMETRIC KEY PacificSales09 
    WITH ALGORITHM = RSA_2048 
    ENCRYPTION BY PASSWORD = 'bmsA$dk7i82bv55foajsd9764'; 
GO

B. Erstellen eines asymmetrischen Schlüssels aus einer Datei, wobei die Autorisierung an einen Benutzer erteilt wird

Im folgenden Beispiel wird der asymmetrische Schlüssel PacificSales19 aus einem in einer Datei gespeicherten Schlüsselpaar erstellt, und der Benutzer SyedAbbas wird anschließend zum Verwenden des asymmetrischen Schlüssels autorisiert.

CREATE ASYMMETRIC KEY PacificSales19 AUTHORIZATION SyedAbbas  
    FROM FILE = ' c:\PacSales\Managers\SyedAbbasCerts.tmp'  
    ENCRYPTION BY PASSWORD = '35698ofg0sjlkfLKJ4548872$$$2';
GO

Siehe auch

Verweis

ALTER ASYMMETRIC KEY (Transact-SQL)
DROP ASYMMETRIC KEY (Transact-SQL)

Andere Ressourcen

Auswählen eines Verschlüsselungsalgorithmus
Verschlüsselungshierarchie

Hilfe und Informationen

Informationsquellen für SQL Server 2005