CREATE ASYMMETRIC KEY (Transact-SQL)

 

**ESTE TÓPICO APLICA\-SE A:** ![](../Image/Applies%20to/yes.png)SQL Server \(começando com o 2008\) ![](../Image/Applies%20to/yes.png)Banco de Dados SQL do Azure ![](../Image/Applies%20to/no.png)Azure SQL Data Warehouse ![](../Image/Applies%20to/no.png)Parallel Data Warehouse

Cria uma chave assimétrica no banco de dados.

Aplica-se a: SQL Server (SQL Server 2008 à versão atual).

Topic link icon Convenções da sintaxe Transact-SQL

  
CREATE ASYMMETRIC KEY Asym_Key_Name   
   [ AUTHORIZATION database_principal_name ]  
   {  
      [ FROM <Asym_Key_Source> ]  
      |  
      WITH <key_option>  
   [ ENCRYPTION BY <encrypting_mechanism> ]  
  
<Asym_Key_Source>::=  
   FILE = 'path_to_strong-name_file'  
   |  
   EXECUTABLE FILE = 'path_to_executable_file'  
   |  
   ASSEMBLY Assembly_Name  
   |  
   PROVIDER Provider_Name  
  
<key_option> ::=  
   ALGORITHM = <algorithm>  
      |  
   PROVIDER_KEY_NAME = 'key_name_in_provider'  
      |  
      CREATION_DISPOSITION = { CREATE_NEW | OPEN_EXISTING }  
  
<algorithm> ::=  
      { RSA_512 | RSA_1024 | RSA_2048 }   
  
<encrypting_mechanism> ::=  
    PASSWORD = 'password'   

FROM Asym_Key_Source
Especifica a fonte da qual carregar o par de chaves assimétricas.

AUTHORIZATION database_principal_name
Especifica o proprietário da chave assimétrica. O proprietário não pode ser uma função ou um grupo. Se esta opção for omitida, o proprietário será o usuário atual.

FILE ='path_to_strong-name_file'
Especifica o caminho de um arquivo com nome forte a partir do qual o par de chaves deve ser carregado.

System_CAPS_ICON_note.jpg Observação


Essa opção não está disponível em um banco de dados independente.

EXECUTABLE FILE ='path_to_executable_file'
Especifica um arquivo de assembly a partir do qual a chave pública deve ser carregada. Limitado a 260 caracteres por MAX_PATH da API do Windows.

System_CAPS_ICON_note.jpg Observação


Essa opção não está disponível em bancos de dados independentes.

ASSEMBLY Assembly_Name
Especifica o nome de um assembly a partir do qual a chave pública deve ser carregada.

ENCRYPTION BY <key_name_in_provider>
Especifica como a chave é criptografada. Pode ser um certificado, uma senha ou chave assimétrica.

KEY_NAME ='key_name_in_provider'
Especifica o nome da chave do provedor externo. Para obter mais informações sobre o gerenciamento de chaves externas, consulte Gerenciamento extensível de chaves (EKM).

CREATION_DISPOSITION = CREATE_NEW
Cria uma chave nova no dispositivo de Gerenciamento Extensível de Chaves. PROV_KEY_NAME deve ser usado para especificar nome da chave no dispositivo. Se já existir uma chave no dispositivo, a instrução falhará e será apresentado um erro.

CREATION_DISPOSITION = OPEN_EXISTING
Mapeia uma chave assimétrica do SQL Server para uma chave de Gerenciamento Extensível de Chaves existente. PROV_KEY_NAME deve ser usado para especificar nome da chave no dispositivo. Se CREATION_DISPOSITION = OPEN_EXISTING não for fornecido, o padrão será CREATE_NEW.

PASSWORD = 'password'
Especifica a senha com a qual a chave privada deve ser criptografada. Se essa cláusula não estiver presente, a chave privada será criptografada com a chave mestra do banco de dados. password terá no máximo 128 caracteres. A password deve atender aos requisitos da política de senha do Windows do computador que está executando a instância do SQL Server.

Uma chave assimétrica é uma entidade protegível no nível do banco de dados. Em sua forma padrão, esta entidade contém uma chave pública e uma chave privada. Quando executado sem a cláusula FROM, CREATE ASYMMETRIC KEY gera um par de chaves novo. Quando executado com a cláusula FROM, CREATE ASYMMETRIC KEY importa um par de chaves de um arquivo ou uma chave pública de um assembly.

Por padrão, a chave privada é protegida pela chave-mestre de banco de dados. Se nenhuma chave-mestre de banco de dados tiver sido criada, será exigida uma senha para proteger a chave privada. Se houver uma chave-mestre de banco de dados, a senha será opcional.

A chave privada pode ter 512, 1024 ou 2048 bits.

Requer a permissão CREATE ASYMMETRIC KEY no banco de dados. Se a cláusula AUTHORIZATION estiver especificada, exigirá a permissão IMPERSONATE na entidade de segurança do banco de dados ou a permissão ALTER na função de aplicativo. Somente logons do Windows, logons do SQL Server e funções de aplicativo podem possuir chaves assimétricas. Grupos e funções não podem possuir chaves assimétricas.

A.Criando uma chave assimétrica

O exemplo a seguir cria uma chave assimétrica denominada PacificSales09 usando o algoritmo RSA_2048 e protege a chave privada com uma senha.

CREATE ASYMMETRIC KEY PacificSales09   
    WITH ALGORITHM = RSA_2048   
    ENCRYPTION BY PASSWORD = '<enterStrongPasswordHere>';   
GO  

B.Criando uma chave assimétrica de um arquivo, dando autorização a um usuário

O exemplo seguinte cria uma chave assimétrica PacificSales19 a partir de um par de chaves armazenado em um arquivo e autoriza o usuário Christina a utilizar a chave assimétrica.

CREATE ASYMMETRIC KEY PacificSales19 AUTHORIZATION Christina   
    FROM FILE = 'c:\PacSales\Managers\ChristinaCerts.tmp'    
    ENCRYPTION BY PASSWORD = '<enterStrongPasswordHere>';  
GO  

C.Criando uma chave assimétrica de um provedor de EKM

O exemplo seguinte cria a chave assimétrica EKM_askey1 a partir de um par de chaves armazenado em um arquivo. Em seguida, essa chave é criptografada com o uso de um provedor de gerenciamento extensível de chaves denominado EKMProvider1 e uma chave nesse provedor denominada key10_user1.

CREATE ASYMMETRIC KEY EKM_askey1   
    FROM PROVIDER EKM_Provider1  
    WITH   
        ALGORITHM = RSA_512,   
        CREATION_DISPOSITION = CREATE_NEW  
        , PROVIDER_KEY_NAME  = 'key10_user1' ;  
GO  

Escolher um algoritmo de criptografia
ALTER ASYMMETRIC KEY (Transact-SQL)
DROP ASYMMETRIC KEY (Transact-SQL)
Hierarquia de criptografia

Contribuições da comunidade

Mostrar: