CREATE ASYMMETRIC KEY (Transact-SQL)

Crea una clave asimétrica en la base de datos.

Icono de vínculo a temasConvenciones de sintaxis de Transact-SQL

Sintaxis

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

Argumentos

  • FROM Asym_Key_Source
    Especifica el origen desde el que se carga el par de claves asimétricas.
  • AUTHORIZATION database_principal_name
    Especifica el propietario de la clave asimétrica. El propietario no puede ser una función ni un grupo. Si se omite esta opción, el propietario será el usuario actual.
  • FILE ='path_to_strong-name_file'
    Especifica la ruta de acceso a un archivo de nombre seguro desde el que se carga el par de claves.
  • EXECUTABLE FILE ='path_to_executable_file'
    Especifica un archivo de ensamblado desde el que se carga la clave pública.
  • ASSEMBLY Assembly_Name
    Especifica el nombre de un ensamblado desde el que se carga la clave pública.
  • ENCRYPTION BY PASSWORD ='password'
    Especifica la contraseña con la que se cifra la clave privada. Si no está presente esta cláusula, la clave privada se cifrará con la clave maestra de la base de datos. password tiene un máximo de 128 caracteres.

Notas

Una clave asimétrica es una entidad que puede protegerse en el nivel de base de datos. De manera predeterminada, esta entidad contiene una clave pública y otra privada. Si se ejecuta sin la cláusula FROM, CREATE ASYMMETRIC KEY genera un nuevo par de claves. Si se ejecuta con la cláusula FROM, CREATE ASYMMETRIC KEY importa un par de claves desde un archivo o importa una clave pública desde un ensamblado.

De manera predeterminada, la clave privada está protegida por la clave maestra de la base de datos. Si no se ha creado una clave maestra de base de datos, se necesita una contraseña para proteger la clave privada. Si hay una clave maestra de base de datos, la contraseña es opcional.

La clave privada puede ser de 512, 1.024 o 2.048 bits.

Permisos

Requiere el permiso CREATE ASYMMETRIC KEY en la base de datos. Si se especifica la cláusula AUTHORIZATION, es necesario el permiso IMPERSONATE en la entidad de seguridad de la base de datos o el permiso ALTER en la función de aplicación.

Ejemplos

A. Crear una clave asimétrica

En el siguiente ejemplo se crea una clave asimétrica con el nombre PacificSales09 mediante el algoritmo RSA_2048 para proteger la clave privada con una contraseña.

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

B. Crear una clave asimétrica desde un archivo, concediendo autorización a un usuario

En el siguiente ejemplo se crea la clave asimétrica PacificSales19 desde un par de claves almacenadas en un archivo y, a continuación, se autoriza al usuario SyedAbbas para utilizar la clave asimétrica.

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

Vea también

Referencia

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

Otros recursos

Elegir un algoritmo de cifrado
Jerarquía de cifrado

Ayuda e información

Obtener ayuda sobre SQL Server 2005