Partilhar via


Gerenciador de conexões ADO.NET

Aplica-se a: SQL Server SSIS Integration Runtime no Azure Data Factory

Um gerenciador de conexões ADO.NET permite que um pacote acesse fontes de dados usando um provedor .NET. Normalmente, você usa esse gerenciador de conexões para acessar fontes de dados, como Microsoft SQL Server. Você também pode acessar fontes de dados expostas por meio de OLE DB e XML em tarefas personalizadas escritas em código gerenciado usando uma linguagem, como C#.

Quando você adiciona um gerenciador de conexões ADO.NET a um pacote, SQL Server Integration Services cria um gerenciador de conexões que é resolvido como uma conexão ADO.NET em runtime. Ele define as propriedades do gerenciador de conexões e adiciona esse gerenciador à coleção de Conexões do pacote.

A propriedade ConnectionManagerType do gerenciador de conexões é definida como ADO.NET. O valor de ConnectionManagerType está qualificado para incluir o nome do provedor .NET usado pelo gerenciador de conexões.

Observação

O Microsoft Entra ID era anteriormente conhecido como Azure Active Directory (Azure AD).

Solução de problemas do gerenciador de conexões ADO.NET

O driver Microsoft.Data.SqlClient não é compatível com o SQL 2022 e versões anteriores. Se você precisar do método de autenticação msi ou baseado no Microsoft Entra ID, use o gerenciador de conexões do Oledb.

Você pode registrar as chamadas que o gerenciador de conexões ADO.NET faz a provedores de dados externos. É possível solucionar problemas de conexões que o gerenciador de conexões ADO.NET cria para fontes de dados externas. Para registrar as chamadas que o gerenciador de conexões ADO.NET faz aos provedores de dados externos, habilite o registro do pacote e selecione o evento Diagnóstico no nível de pacote. Para obter mais informações, consulte Solucionando problemas de ferramentas para execução de pacotes.

Ao serem lidos por um gerenciador de conexões ADO.NET, certos tipos de dados de data do SQL Server geram os resultados mostrados na tabela a seguir.

Tipo de dados do SQL Server Result
time, datetimeoffset O pacote apresentará erros, a menos que use comandos com parâmetros SQL. Para utilizar comandos SQL parametrizados, use a tarefa Executar SQL em seu pacote. Para obter mais informações, consulte Tarefa Executar SQL e Parâmetros e códigos de retorno na Tarefa Executar SQL.
datetime2 O gerenciador de conexões ADO.NET trunca o valor de milissegundo.

Observação

Para obter mais informações sobre tipos de dados SQL Server e como eles são associados a tipos de dados, confira Tipos de dados (Transact-SQL) e Tipos de dados do Integration Services.

Configuração do gerenciador de conexões ADO.NET

Você pode definir propriedades pelo Designer do SSIS ou de maneira programática.

  • Forneça uma cadeia de conexão específica configurada para atender aos requisitos do provedor .NET selecionado.

  • Dependendo do provedor, inclua o nome da fonte de dados à qual efetuar a conexão.

  • Forneça credenciais de segurança apropriadas para o provedor selecionado.

  • Indique se a conexão criada a partir do gerenciador de conexões será retida em runtime.

Muitas das opções de configuração do gerenciador de conexões ADO.NET dependem do provedor .NET que o gerenciador de conexões usa.

Para obter mais informações sobre as propriedades que podem ser definidas no Designer do SSIS, confira Configurar gerenciador de conexões ADO.NET.

Para obter informações sobre como configurar um gerenciador de conexões programaticamente, consulte ConnectionManager e Adicionando conexões programaticamente.

Configurar Gerenciador de Conexões ADO.NET

Use a caixa de diálogo Configurar gerenciador de conexões ADO.NET para adicionar uma conexão a uma fonte de dados que pode ser acessada usando um provedor de dados .NET Framework. Por exemplo, um provedor desse tipo é o SqlClient. O gerenciador de conexões pode usar uma conexão existente ou você pode criar uma nova.

Para saber mais sobre o gerenciador de conexões ADO.NET, consulte ADO.NET Connection Manager.

Opções

Conexões de dados
Selecione uma conexão de dados ADO.NET existente na lista.

Propriedades de conexão de dados
Exiba as propriedades e os valores da conexão de dados ADO.NET selecionada.

Novo
Crie uma conexão de dados ADO.NET utilizando a caixa de diálogo do Gerenciador de Conexões .

Delete (excluir)
Selecione uma conexão e selecione Excluir para excluí-la.

Identidades gerenciadas para autenticação de recursos do Azure

Ao executar pacotes do SSIS no Azure-SSIS Integration Runtime (IR) no Azure Data Factory (ADF), você pode usar a autenticação do Microsoft Entra com a identidade gerenciada ado ADF para acessar o Banco de Dados SQL do Azure ou a Instância Gerenciada de SQL. Seu Azure-SSIS IR pode acessar e copiar dados e copiá-los de e para o banco de dados usando essa identidade gerenciada.

Observação

Quando você realiza a autenticação com uma identidade gerenciada atribuída pelo usuário, o SSIS Integration Runtime precisa ser habilitado com a mesma identidade. Para obter mais informações, confira Habilitar a autenticação do Microsoft Entra para Azure-SSIS Integration Runtime.

Para habilitar o ADF para acessar oo Banco de Dados SQL do Azure usando a identidade gerenciada, siga essas etapas:

  1. Provisione um administrador do Microsoft Entra para seu servidor do Banco de Dados SQL do Azure no portal do Azure, caso ainda não tenha feito isso. O administrador do Microsoft Entra pode ser um usuário ou um grupo. Se você designar um grupo como administrador, e a identidade gerenciada do seu ADF for um membro daquele grupo, pode ignorar e pular as etapas 2 e 3. O administrador terá acesso completo ao seu servidor lógico.

  2. Crie um usuário de banco de dados independente para representar a identidade gerenciada atribuída ao ADF. Conecte-se ao banco de dados do qual ou para o qual deseja copiar dados usando o SSMS (SQL Server Management Studio) com uma identidade do Microsoft Entra que tenha, pelo menos, a permissão ALTER ANY USER. Execute a seguinte instrução T-SQL:

    CREATE USER [your managed identity name] FROM EXTERNAL PROVIDER;
    

    Se você usar a identidade gerenciada atribuída pelo sistema para o ADF, o nome da identidade gerenciada será o nome do ADF. Se você usar uma identidade gerenciada atribuída pelo usuário para o ADF, o nome da identidade gerenciada será nome da identidade gerenciada.

  3. Conceda à identidade gerenciada do ADF as permissões necessárias, como você normalmente faz para os usuários SQL. Saiba mais sobre as funções adequadas em Funções do nível de banco de dados. Execute a seguinte instrução T-SQL. Para mais opções, confira este artigo.

    EXEC sp_addrolemember [role name], [your managed identity name];
    

Para usar a identidade gerenciada atribuída ao ADF a fim de acessar a Instância Gerenciada de SQL do Azure, siga estas etapas:

  1. Provisione um administrador do Microsoft Entra para sua Instância Gerenciada de SQL do Azure no portal do Azure, caso ainda não tenha feito isso. O administrador do Microsoft Entra pode ser um usuário ou um grupo. Se você designar um grupo como administrador e sua identidade gerenciada for membro desse grupo, poderá ignorar as etapas 2 a 4. O administrador terá acesso completo à sua Instância gerenciada.

  2. Crie um logon atribuído à identidade gerenciada do ADF. No SSMS, conecte-se à instância gerenciada usando uma conta com permissões sysadmin ou o administrador do Microsoft Entra. No banco de dados master, execute a seguinte instrução T-SQL:

    CREATE LOGIN [your managed identity name] FROM EXTERNAL PROVIDER;
    

    Se você usar a identidade gerenciada atribuída pelo sistema para o ADF, o nome da identidade gerenciada será o nome do ADF. Se você usar uma identidade gerenciada atribuída pelo usuário para o ADF, o nome da identidade gerenciada será nome da identidade gerenciada.

  3. Crie um usuário de banco de dados independente para representar a identidade gerenciada para o ADF. Conecte-se ao banco de dados do qual você deseja copiar dados usando o SSMS e execute a seguinte instrução T-SQL:

    CREATE USER [your managed identity name] FROM EXTERNAL PROVIDER;
    
  4. Conceda à identidade gerenciada do ADF as permissões necessárias, como você normalmente faz para os usuários SQL. Execute a seguinte instrução T-SQL. Para mais opções, confira este artigo.

    ALTER ROLE [role name e.g., db_owner] ADD MEMBER [your managed identity name];
    

Por fim, você pode configurard a autenticação do Microsoft Entra com a identidade gerenciada do seu ADF no gerenciador de conexões ADO.NET. Veja a seguir as opções para fazer isso:

  • Configurar em tempo de design. No Designer do SSIS, clique com o botão direito do mouse em seu gerenciador de conexões ADO.NET e selecione Propriedades. Atualize a propriedade ConnectUsingManagedIdentity para True.

    Observação

    A propriedade do gerenciador de conexões ConnectUsingManagedIdentity não entra em vigor quando você executa o pacote no Designer do SSIS ou no SQL Server, indicando que a autenticação do Microsoft Entra com a identidade gerenciada do ADF não funciona.

  • Configurar em tempo de execução. Ao executar o pacote por meio do SSMS ou Executar a atividade de Pacote do SSIS no pipeline do ADF, localize o gerenciador de conexões do ADO.NET e atualize sua propriedade ConnectUsingManagedIdentity para True.

    Observação

    No Azure-SSIS IR, todos os outros métodos de autenticação (por exemplo, segurança e senha integradas) pré-configurados em seu gerenciador de conexões ADO.NET são substituídos ao usar a autenticação do Microsoft Entra com a identidade gerenciada do ADF.

Para configurar a autenticação do Microsoft Entra com a identidade gerenciada do ADF em pacotes existentes, a maneira preferencial é recompilar seu projeto SSIS com o Designer do SSIS mais recente pelo menos uma vez. Reimplante seu projeto do SSIS para ser executado no Azure-SSIS IR, para que a nova propriedade do gerenciador de conexões ConnectUsingManagedIdentity seja automaticamente adicionada a todos os gerenciadores de conexões ADO.NET em seu projeto. Como alternativa, é possível usar diretamente a substituição de propriedade com o caminho de propriedade \Package.Connections[{o nome do seu gerenciador de conexões}].Properties[ConnectUsingManagedIdentity] atribuído a True no tempo de execução.

Confira também