Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Observação
Esta página aplica-se às versões do driver JDBC da Databrick abaixo da versão 3. Para o driver JDBC do Databricks versão 3 e superior, veja o Driver JDBC do Databricks.
Esta página descreve como configurar as definições de autenticação do Azure Databricks para o Driver JDBC do Databricks.
O Databricks JDBC Driver dá suporte aos seguintes tipos de autenticação do Azure Databricks:
- Token ID do Microsoft Entra
- Tokens OAuth 2.0
- Autenticação OAuth de utilizador para máquina (U2M)
- Autenticação de utilizador para máquina (U2M) do Microsoft Entra ID OAuth
- Autenticação OAuth entre máquinas (M2M)
- Autenticação de máquina a máquina (M2M) do Microsoft Entra ID OAuth
Token de Identificação do Microsoft Entra
Os drivers ODBC e JDBC 2.6.15 e superiores oferecem suporte a tokens do Microsoft Entra ID para um utilizador do Azure Databricks ou um principal de serviço do Microsoft Entra ID.
Para criar um token de acesso do Microsoft Entra ID, faça o seguinte:
- Para um usuário do Azure Databricks, você pode usar a CLI do Azure. Consulte Obter tokens de ID do Microsoft Entra manualmente.
- Para uma entidade de serviço do Microsoft Entra ID, consulte Obter tokens para entidades de serviço. Para criar um principal de serviço gerido pelo Microsoft Entra ID, consulte Principais de serviço.
Os tokens de acesso Microsoft Entra ID têm uma vida útil padrão de cerca de uma hora. Atualize um token de acesso programaticamente para uma sessão existente sem interromper a ligação, executando o código nos tokens de atualização. Para instruções, consulte Utilização do OAuth 2.0 no Guia de Controladores JDBC do Databricks.
Para autenticar usando um token de ID do Microsoft Entra, defina a seguinte configuração.
Para uma URL de conexão JDBC com propriedades de configuração geral incorporadas e propriedades de credenciais confidenciais:
jdbc:databricks://<server-hostname>:443;httpPath=<http-path>;AuthMech=11;Auth_Flow=0;Auth_AccessToken=<microsoft-entra-id-token>
Para código Java com propriedades de configuração geral e propriedades de credenciais confidenciais definidas fora da URL de conexão JDBC:
// ...
String url = "jdbc:databricks://<server-hostname>:443";
Properties p = new java.util.Properties();
p.put("httpPath", "<http-path>");
p.put("AuthMech", "11");
p.put("Auth_Flow", "0");
p.put("Auth_AccessToken", "<microsoft-entra-id-token>");
// ...
Connection conn = DriverManager.getConnection(url, p);
// ...
- No URL ou código Java anterior, substitua
<microsoft-entra-id-token>pelo token ID do Microsoft Entra. - Para obter os valores de
<server-hostname>e<http-path>, consulte Configurações de computação para o Databricks JDBC Driver (Simba).
Para mais informações, consulte a secção Token Pass-through no Guia de Controladores JDBC Databricks (HTML ou PDF).
Tokens OAuth 2.0
O driver JDBC 2.6.36 e versões posteriores suporta um token OAuth 2.0 para um principal de serviço Microsoft Entra ID. Isso também é conhecido como autenticação de passagem de token OAuth 2.0.
- Para criar um token OAuth 2.0 para autenticação de passagem de token para um principal de serviço Microsoft Entra ID, consulte Gerar manualmente tokens de acesso OAuth M2M. Anote o valor OAuth
access_tokendo principal de serviço. - Para criar um principal de serviço gerido pelo Microsoft Entra ID, consulte Principais de serviço.
Importante
O driver JDBC 2.6.36 e superior oferece suporte ao uso de segredos OAuth do Azure Databricks para criar tokens OAuth 2.0. Os segredos de ID do Microsoft Entra não são suportados.
Os tokens OAuth 2.0 têm um tempo de vida padrão de 1 hora. Para gerar um novo token OAuth 2.0, repita este processo.
Para autenticar usando a autenticação de passagem de token OAuth 2.0, defina a seguinte configuração.
Para uma URL de conexão JDBC com propriedades de configuração geral incorporadas e propriedades de credenciais confidenciais:
jdbc:databricks://<server-hostname>:443;httpPath=<http-path>;AuthMech=11;Auth_Flow=0;Auth_AccessToken=<oauth-token>
Para código Java com propriedades de configuração geral e propriedades de credenciais confidenciais definidas fora da URL de conexão JDBC:
// ...
String url = "jdbc:databricks://<server-hostname>:443";
Properties p = new java.util.Properties();
p.put("httpPath", "<http-path>");
p.put("AuthMech", "11");
p.put("Auth_Flow", "0");
p.put("Auth_AccessToken", "<oauth-token>");
// ...
Connection conn = DriverManager.getConnection(url, p);
// ...
- Na URL ou código Java anterior, substitua
<oauth-token>pelo token OAuth do Azure Databricks. (Os tokens de ID do Microsoft Entra não são suportados para autenticação por passagem de token do OAuth 2.0.) - Para obter os valores de
<server-hostname>e<http-path>, consulte Configurações de computação para o Databricks JDBC Driver (Simba).
Para mais informações, consulte a secção Token Pass-through no Guia de Controladores JDBC Databricks (HTML ou PDF).
Autenticação OAuth de utilizador para máquina (U2M)
O driver JDBC 2.6.36 e superior oferece suporte à autenticação U2M (usuário para máquina) OAuth para um usuário do Azure Databricks. Isso também é conhecido como autenticação baseada em navegador OAuth 2.0.
A autenticação baseada em navegador OAuth U2M ou OAuth 2.0 não tem pré-requisitos. Os tokens OAuth 2.0 têm um tempo de vida padrão de 1 hora. A autenticação baseada em navegador OAuth U2M ou OAuth 2.0 deve atualizar os tokens OAuth 2.0 expirados para você automaticamente.
Observação
A autenticação baseada em navegador OAuth U2M ou OAuth 2.0 funciona apenas com aplicativos executados localmente. Ele não funciona com aplicativos baseados em servidor ou em nuvem.
Para autenticar usando a autenticação OAuth user-to-machine (U2M) ou OAuth 2.0 baseada em navegador, defina a seguinte configuração.
Para uma URL de conexão JDBC com propriedades de configuração geral incorporadas e propriedades de credenciais confidenciais:
jdbc:databricks://<server-hostname>:443;httpPath=<http-path>;AuthMech=11;Auth_Flow=2;TokenCachePassPhrase=<passphrase>;EnableTokenCache=0
Para código Java com propriedades de configuração geral e propriedades de credenciais confidenciais definidas fora da URL de conexão JDBC:
// ...
String url = "jdbc:databricks://<server-hostname>:443";
Properties p = new java.util.Properties();
p.put("httpPath", "<http-path>");
p.put("AuthMech", "11");
p.put("Auth_Flow", "2")
p.put("TokenCachePassPhrase", "<passphrase>");
p.put("EnableTokenCache", "0");
// ...
Connection conn = DriverManager.getConnection(url, p);
// ...
- No URL ou código Java anterior, substitua
<passphrase>por uma frase secreta de sua escolha. O driver usa essa chave para atualizar a criptografia de token. - Para obter os valores de
<server-hostname>e<http-path>, consulte Configurações de computação para o Databricks JDBC Driver (Simba).
Para mais informações, consulte a secção Utilização de Autenticação Baseada em Navegador no Guia de Controladores Databricks JDBC (HTML ou PDF).
Autenticação de utilizador para máquina (U2M) do Microsoft Entra ID OAuth
O driver JDBC 2.7.1 e versões posteriores oferecem suporte à autenticação de utilizador para máquina (U2M) via Microsoft Entra ID OAuth para um utilizador do Azure Databricks. Isso também é conhecido como autenticação baseada em navegador OAuth 2.0.
A autenticação baseada em navegador OAuth U2M ou OAuth 2.0 não tem pré-requisitos. Os tokens OAuth 2.0 têm um tempo de vida padrão de 1 hora. A autenticação baseada em navegador OAuth U2M ou OAuth 2.0 deve atualizar os tokens OAuth 2.0 expirados para você automaticamente.
Observação
A autenticação baseada em navegador OAuth U2M ou OAuth 2.0 funciona apenas com aplicativos executados localmente. Ele não funciona com aplicativos baseados em servidor ou em nuvem.
Para autenticar usando o Microsoft Entra ID OAuth user-to-machine (U2M), o cliente OAuth (aplicativo) deve ser registrado no Microsoft Entra ID, consulte Registrar um aplicativo cliente no Microsoft Entra ID. Em seguida, defina a seguinte configuração:
Para uma URL de conexão JDBC com propriedades de configuração geral incorporadas e propriedades de credenciais confidenciais:
jdbc:databricks://<server-hostname>:443;httpPath=<http-path>;AuthMech=11;Auth_Flow=2;TokenCachePassPhrase=<passphrase>;EnableTokenCache=0;OIDCDiscoveryEndpoint=<endpoint>;EnableOIDCDiscovery=true
Para código Java com propriedades de configuração geral e propriedades de credenciais confidenciais definidas fora da URL de conexão JDBC:
// ...
String url = "jdbc:databricks://<server-hostname>:443";
Properties p = new java.util.Properties();
p.put("httpPath", "<http-path>");
p.put("AuthMech", "11");
p.put("Auth_Flow", "2")
p.put("TokenCachePassPhrase", "<passphrase>");
p.put("EnableTokenCache", "0");
p.put("OIDCDiscoveryEndpoint", "https://login.microsoftonline.com/<azureTenantId>/v2.0/.well-known/openid-configuration");
p.put("EnableOIDCDiscovery", "true");
// ...
Connection conn = DriverManager.getConnection(url, p);
// ...
- No URL ou código Java anterior, substitua
<passphrase>por uma frase secreta de sua escolha. O driver usa essa chave para atualizar a criptografia de token. - Para obter os valores de
<server-hostname>e<http-path>, consulte Configurações de computação para o Databricks JDBC Driver (Simba).
Para mais informações, consulte a secção Utilização de Autenticação Baseada em Navegador no Guia de Controladores Databricks JDBC (HTML ou PDF).
Autenticação OAuth entre máquinas (M2M)
O driver JDBC 2.6.36 e versões superiores suporta autenticação OAuth M2M (máquina-a-máquina) para um principal de serviço do Microsoft Entra ID. Isso também é conhecido como autenticação de credenciais de cliente usando OAuth 2.0 .
Observação
JDBC 2.6.40.1071 resolveu o problema nas versões anteriores em que a ligação utilizando M2M para espaços de trabalho com ligação privada não era suportada.
Para configurar a autenticação de credenciais de cliente OAuth M2M ou OAuth 2.0, faça o seguinte:
Crie um principal de serviço gerido do Microsoft Entra ID e, em seguida, atribua-o a contas e espaços de trabalho do Azure Databricks. Para fazer isso, consulte Entidades de serviço.
Crie uma credencial OAuth do Azure Databricks para a entidade de serviço. Para fazer isso, consulte Gerar manualmente tokens de acesso OAuth M2M.
Dê ao principal de serviço acesso ao seu cluster ou armazém. Consulte Permissões de Computação ou Gerir um Armazém SQL.
Para autenticar usando a autenticação de credenciais de cliente OAuth máquina-a-máquina (M2M) ou OAuth 2.0, defina a seguinte configuração.
Para uma URL de conexão JDBC com propriedades de configuração geral incorporadas e propriedades de credenciais confidenciais:
jdbc:databricks://<server-hostname>:443;httpPath=<http-path>;AuthMech=11;Auth_Flow=1;OAuth2ClientId=<service-principal-application-id>;OAuth2Secret=<service-principal-oauth-secret>
Para código Java com propriedades de configuração geral e propriedades de credenciais confidenciais definidas fora da URL de conexão JDBC:
// ...
String url = "jdbc:databricks://<server-hostname>:443";
Properties p = new java.util.Properties();
p.put("httpPath", "<http-path>");
p.put("AuthMech", "11");
p.put("Auth_Flow", "1");
p.put("OAuth2ClientId", "<service-principal-application-id>");
p.put("OAuth2Secret", "<service-principal-oauth-secret>");
// ...
Connection conn = DriverManager.getConnection(url, p);
// ...
- No URL ou código Java anterior, substitua os seguintes marcadores de posição:
- Substitua
<service-principal-application-id>pelo valor de ID do aplicativo (cliente) da entidade de serviço. - Substitua
<service-principal-oauth-secret>pelo segredo OAuth do Azure Databricks do principal de serviço. (Os segredos de ID do Microsoft Entra não são suportados para autenticação de credenciais de cliente OAuth M2M ou OAuth 2.0.) - Para obter os valores de
<server-hostname>e<http-path>, consulte Configurações de computação para o Databricks JDBC Driver (Simba).
- Substitua
Para mais informações, consulte a secção Utilização de Autenticação Baseada em M2M no Guia do Controlador Databricks JDBC (HTML ou PDF).
Autenticação de máquina a máquina (M2M) do Microsoft Entra ID OAuth
O driver JDBC 2.7.1 e posteriores suporta a autenticação de máquina a máquina (M2M) do Microsoft Entra ID OAuth para um principal de serviço do Microsoft Entra ID. Isso também é conhecido como autenticação de credenciais de cliente usando OAuth 2.0 .
Para configurar a autenticação Entra ID OAuth M2M, faça o seguinte:
Crie um principal de serviço gerido do Microsoft Entra ID e, em seguida, atribua-o a contas e espaços de trabalho do Azure Databricks. Para fazer isso, consulte Entidades de serviço.
Crie um segredo OAuth do Entra ID para o principal de serviço. Para fazer isso, consulte Gerar manualmente tokens de acesso OAuth M2M.
Dê ao principal de serviço acesso ao seu cluster ou armazém. Consulte Permissões de Computação ou Gerir um Armazém SQL.
Para autenticar usando o Entra ID OAuth machine-to-machine (M2M), defina a seguinte configuração.
Para uma URL de conexão JDBC com propriedades de configuração geral incorporadas e propriedades de credenciais confidenciais:
jdbc:databricks://<server-hostname>:443;httpPath=<http-path>;AuthMech=11;Auth_Flow=1;OAuth2ClientId=<service-principal-application-id>;OAuth2Secret=<service-principal-oauth-secret>;OIDCDiscoveryEndpoint=<endpoint>;EnableOIDCDiscovery=true
Para código Java com propriedades de configuração geral e propriedades de credenciais confidenciais definidas fora da URL de conexão JDBC:
// ...
String url = "jdbc:databricks://<server-hostname>:443";
Properties p = new java.util.Properties();
p.put("httpPath", "<http-path>");
p.put("AuthMech", "11");
p.put("Auth_Flow", "1");
p.put("OAuth2ClientId", "<entra-id-service-principal-application-id>");
p.put("OAuth2Secret", "<entra-id-service-principal-client-secret>");
p.put("OIDCDiscoveryEndpoint", "https://login.microsoftonline.com/<AzureTenantId>/v2.0/.well-known/openid-configuration");
p.put("EnableOIDCDiscovery", "true");
// ...
Connection conn = DriverManager.getConnection(url, p);
// ...
- No URL ou código Java anterior, substitua os seguintes marcadores de posição:
- Substitua
<entra-id-service-principal-application-id>pelo valor de ID da aplicação da entidade de serviço no Entra. - Substitua
<entra-id-service-principal-client-secret>pelo segredo do principal do serviço no Entra. Este é o segredo do cliente que você cria em Certificados & segredos no Microsoft Entra ID. - Para obter os valores de
<server-hostname>e<http-path>, consulte Configurações de computação para o Databricks JDBC Driver (Simba).
- Substitua