Compartilhar via


CREATE CREDENTIAL (Transact-SQL)

Sintaxe

CREATE CREDENTIAL credential_name WITH IDENTITY = 'identity_name'
    [ , SECRET = 'secret' ]
        [ FOR CRYPTOGRAPHIC PROVIDER cryptographic_provider_name ]

Argumentos

  • credential_name
    Especifica o nome da credencial que está sendo criada. credential_name não pode começar com o sinal numérico (#). As credenciais de sistema começam com ##.

  • IDENTITY ='identity_name'
    Especifica o nome da conta a ser usada ao conectar o servidor externamente.

  • SECRET ='secret'
    Especifica o segredo necessário para a autenticação de saída. Esta cláusula é opcional.

  • FOR CRYPTOGRAPHIC_PROVIDER cryptographic_provider_name
    Especifica o nome de um Provedor de Gerenciamento Extensível de Chaves (EKM). Para obter mais informações sobre o gerenciamento de chaves, consulte Compreendendo o EKM (Gerenciador de Chave Extensível).

Comentários

Uma credencial é um registro que contém as informações de autenticação necessárias para conectar-se a um recurso fora do SQL Server. A maioria das credenciais inclui um usuário e uma senha do Windows.

Quando IDENTITY for um usuário do Windows, o segredo poderá ser a senha. O segredo é criptografado com a chave mestre de serviço. Se a chave mestre de serviço for gerada novamente, o segredo será criptografado novamente com a nova chave mestre de serviço.

Após criar uma credencial, mapeie-a em um logon do SQL Server usando CREATE LOGIN ou ALTER LOGIN. Um logon do SQL Server pode ser mapeado somente em uma credencial, mas uma única credencial pode ser mapeada em vários logons do SQL Server. Para obter mais informações, consulte Credenciais (Mecanismo de Banco de Dados).

As informações sobre as credenciais estão disponíveis na exibição do catálogo sys.credentials.

Se não houver nenhuma credencial mapeada de logon para o provedor, a credencial mapeada para a conta de serviço do SQL Server será usada.

Um logon pode ter várias credenciais mapeadas, contanto que elas sejam usadas com provedores diferentes. Deve haver só uma credencial mapeada por provedor por logon. A mesma credencial pode ser mapeada para outros logons.

Permissões

Requer a permissão ALTER ANY CREDENTIAL.

Exemplos

O exemplo a seguir cria a credencial chamada AlterEgo. A credencial contém o usuário do Windows Mary5 e uma senha.

CREATE CREDENTIAL AlterEgo WITH IDENTITY = 'Mary5', 
    SECRET = '<EnterStrongPasswordHere>';
GO

O exemplo a seguir usa uma conta criada anteriormente chamada User1OnEKM em um módulo de EKM através das ferramentas de gerenciamento de EKM, com um tipo de conta e senha básicos. A conta sysadmin no servidor cria uma credencial usada para conectar-se à conta de EKM e atribui essa credencial à conta User1SQL Server:

CREATE CREDENTIAL CredentialForEKM
WITH IDENTITY='User1OnEKM'
, SECRET='<EnterStrongPasswordHere>'
  FOR CRYPTOGRAPHIC PROVIDER MyEKMProvider;
GO
/* Modify the login to assign the cryptographic provider credential */
ALTER LOGIN User1
ADD CREDENTIAL CredentialForEKM;
/* Modify the login to assign a non cryptographic provider credential */ 
ALTER LOGIN User1
WITH CREDENTIAL = AlterEgo;
GO