Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Banco de Dados SQL do Azure
Instância Gerenciada SQL do Azure
Banco de Dados SQL do Azure Synapse Analytics
no Microsoft Fabric
Cria uma chave assimétrica no banco de dados.
Esse recurso é incompatível com a exportação de banco de dados usando o Data Tier Application Framework (DACFx). Você deve soltar todas as chaves assimétricas antes de exportar.
Transact-SQL convenções de sintaxe
Note
Essa sintaxe não é suportada pelo pool SQL sem servidor no Azure Synapse Analytics.
Syntax
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_4096 | RSA_3072 | RSA_2048 | RSA_1024 | RSA_512 }
<encrypting_mechanism> ::=
PASSWORD = 'password'
Arguments
asym_key_name
É o nome da chave assimétrica no banco de dados. Os nomes de chaves assimétricas devem estar em conformidade com as regras para identificadores e devem ser exclusivos dentro do banco de dados.
AUTORIZAÇÃO 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 essa opção for omitida, o proprietário será o usuário atual.
DE asym_key_source
Especifica a origem a partir da qual carregar o par de chaves assimétricas.
FICHEIRO = 'path_to_strong-name_file'
Especifica o caminho de um arquivo de nome forte a partir do qual carregar o par de chaves. Limitado a 260 caracteres por MAX_PATH da API do Windows.
Note
Esta opção não está disponível em um banco de dados contido.
FICHEIRO EXECUTÁVEL = 'path_to_executable_file'
Especifica o caminho de um arquivo assembly a partir do qual carregar a chave pública. Limitado a 260 caracteres por MAX_PATH da API do Windows.
Note
Esta opção não está disponível em um banco de dados contido.
ASSEMBLEIA assembly_name
Especifica o nome de um assembly assinado que já foi carregado no banco de dados a partir do qual carregar a chave pública.
FORNECEDOR provider_name
Especifica o nome de um provedor de Gerenciamento Extensível de Chaves (EKM). O provedor deve ser definido primeiro usando a instrução CREATE PROVIDER. Para obter mais informações sobre o gerenciamento de chaves externas, consulte Gerenciamento extensível de chaves (EKM).
ALGORITMO = <algoritmo>
Cinco algoritmos podem ser fornecidos; RSA_4096, RSA_3072, RSA_2048, RSA_1024 e RSA_512.
RSA_1024 e RSA_512 foram preteridos. Para usar RSA_1024 ou RSA_512 (não recomendado), você deve definir o banco de dados para o nível de compatibilidade do banco de dados 120 ou inferior.
A partir do SQL Server 2022 (16.x), há suporte para RSA-HSM_2048 e RSA-HSM_3072.
PROVIDER_KEY_NAME = 'key_name_in_provider'
Especifica o nome da chave do provedor externo.
CREATION_DISPOSITION = CREATE_NEW
Cria uma nova chave no dispositivo de Gerenciamento Extensível de Chaves. PROVIDER_KEY_NAME deve ser usado para especificar o nome da chave no dispositivo. Se já existir uma chave no dispositivo, a instrução falhará com erro.
CREATION_DISPOSITION = OPEN_EXISTING
Mapeia uma chave assimétrica do SQL Server para uma chave de Gerenciamento Extensível de Chaves existente. PROVIDER_KEY_NAME deve ser usado para especificar o nome da chave no dispositivo. Se CREATION_DISPOSITION = OPEN_EXISTING não for fornecido, o padrão será CREATE_NEW.
ENCRIPTAÇÃO POR PALAVRA-PASSE = 'password'
Especifica a senha com a qual criptografar a chave privada. Se essa cláusula não estiver presente, a chave privada será criptografada com a chave mestra do banco de dados.
A palavra-passe tem um máximo de 128 caracteres.
senha deve atender aos requisitos de diretiva de senha do Windows do computador que está executando a instância do SQL Server.
Remarks
Uma chave assimétrica é uma entidade protegível no nível do banco de dados. Em sua forma padrão, essa entidade contém uma chave pública e uma chave privada. Quando executado sem a cláusula FROM, CREATE ASYMMETRIC KEY gera um novo par de chaves. Quando executado com a cláusula FROM, CREATE ASYMMETRIC KEY importa um par de chaves de um arquivo ou importa uma chave pública de um assembly ou arquivo DLL.
Por padrão, a chave privada é protegida pela chave mestra do banco de dados. Se nenhuma chave mestra de banco de dados tiver sido criada, uma senha será necessária para proteger a chave privada.
A chave privada pode ter 512, 1024 ou 2048 bits.
As chaves assimétricas usadas para TDE são limitadas a um tamanho de chave privada de 3072 bits.
Permissions
Requer a permissão CREATE ASYMMETRIC KEY no banco de dados. Se a cláusula AUTHORIZATION for especificada, será necessária a permissão IMPERSONATE na entidade de banco de dados ou a permissão ALTER na função do 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.
Examples
A. Criação de uma chave assimétrica
O exemplo a seguir cria uma chave assimétrica nomeada PacificSales09 usando o RSA_2048 algoritmo 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 a partir de um arquivo, dando autorização a um usuário
O exemplo a seguir cria a chave PacificSales19 assimétrica a partir de um par de chaves armazenado em um arquivo e atribui a propriedade da chave assimétrica ao usuário Christina. A chave privada é protegida pela chave mestra do banco de dados, que deve ser criada antes da criação da chave assimétrica.
CREATE ASYMMETRIC KEY PacificSales19
AUTHORIZATION Christina
FROM FILE = 'c:\PacSales\Managers\ChristinaCerts.tmp';
GO
C. Criando uma chave assimétrica de um provedor de EKM
O exemplo a seguir cria a chave EKM_askey1 assimétrica a partir de um par de chaves armazenado em um provedor de Gerenciamento Extensível de Chaves chamado EKM_Provider1, e uma chave nesse provedor chamada key10_user1.
CREATE ASYMMETRIC KEY EKM_askey1
FROM PROVIDER EKM_Provider1
WITH
ALGORITHM = RSA_2048,
CREATION_DISPOSITION = CREATE_NEW
, PROVIDER_KEY_NAME = 'key10_user1' ;
GO
Ver também
ALTERAR CHAVE ASSIMÉTRICA (Transact-SQL)
SOLTAR CHAVE ASSIMÉTRICA (Transact-SQL)
ASYMKEYPROPERTY (Transact-SQL)
ASYMKEY_ID (Transact-SQL)
Escolha um algoritmo de encriptação
Hierarquia de criptografia
Gerenciamento extensível de chaves usando o Azure Key Vault (SQL Server)