Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
APLICA-SE A: Os dados pertencem ao aplicativo
Os dados pertencem ao usuário
Para configurar as credenciais por meio de programação para o Power BI, siga as etapas deste artigo. Configurar credenciais programaticamente também permite criptografar credenciais.
Os exemplos neste artigo estão em .NET em C#. Para encontrar exemplos em Java, Python e PowerShell, acesse o respectivo repositório. Para obter exemplos de criptografia de credencial KeyPair, consulte Python e PowerShell. Para obter exemplos de criptografia de credencial KeyPair, consulte Python e PowerShell.
Observação
- O usuário que faz a chamada ou o principal de serviço deve ser o proprietário de um modelo semântico ou um administrador de gateway.
- As fontes de dados de nuvem e suas credenciais correspondentes são gerenciadas no nível do usuário.
Atualizar fluxo de credenciais para fontes de dados
Descubra as fontes de dados do modelo semântico chamando Obter Fontes de Dados. O corpo da resposta para cada fonte de dados contém o tipo, os detalhes de conexão, o gateway e a ID da fonte de dados.
// Select a datasource var datasources = pbiClient.Datasets.GetDatasources(datasetId).Value; var datasource = datasources.First();Crie a string de credenciais de acordo com Exemplos de atualização da fonte de dados. O conteúdo da cadeia de caracteres de credenciais depende do tipo de credenciais.
var credentials = new BasicCredentials(username: "username", password :"*****");Observação
Se você estiver usando fontes de dados de nuvem, não siga as próximas etapas nesta seção. Chame Update Datasource para definir as credenciais usando a ID do gateway e a ID da fonte de dados que você obteve na etapa 1.
Recupere a chave pública do gateway chamando Obter Gateway.
var gateway = pbiClient.Gateways.GetGatewayById(datasource.GatewayId);Criptografe as credenciais.
var credentialsEncryptor = new AsymmetricKeyEncryptor(gateway.publicKey);Compile os detalhes de credenciais com credenciais criptografadas.
Use a classe AsymetricKeyEncryptor com a chave pública obtida na Etapa 3.
var credentialDetails = new CredentialDetails( credentials, PrivacyLevel.Private, EncryptedConnection.Encrypted, credentialsEncryptor);Defina as credenciais chamando Atualizar Fonte de Dados.
pbiClient.Gateways.UpdateDatasource(datasource.GatewayId.Value, datasource.DatasourceId.Value, new UpdateDatasourceRequest(credentialDetails));
Configurar uma nova fonte de dados para um gateway de dados
Instale o Gateway de dados local no seu computador.
Recupere a chave pública e a ID do gateway chamando Obter Gateways.
// Select a gateway var gateways = pbiClient.Gateways.GetGateways().Value; var gateway = gateways.First();Compile detalhes de credenciais seguindo o procedimento descrito na seção fluxo de atualização de credenciais para fontes de dados usando a chave pública do gateway que você recuperou na etapa 2.
Crie o corpo da solicitação.
var request = new PublishDatasourceToGatewayRequest( dataSourceType: "SQL", connectionDetails: "{\"server\":\"myServer\",\"database\":\"myDatabase\"}", credentialDetails: credentialDetails, dataSourceName: "my sql datasource");Chame a API Criar Fonte de Dados.
pbiClient.Gateways.CreateDatasource(gateway.Id, request);
Tipos de credenciais
Quando você chama Criar Fonte de Dados ou Atualizar Fonte de Dados da API REST do Power BI em um gateway local corporativo, criptografa o valor das credenciais usando a chave pública do gateway.
Observação
O .NET SDK v3 também pode executar os exemplos de .NET SDK v2 a seguir.
Windows e credenciais básicas
// Windows credentials
var credentials = new WindowsCredentials(username: "john", password: "*****");
// Or
// Basic credentials
var credentials = new BasicCredentials(username: "john", password: "*****");
var credentialsEncryptor = new AsymmetricKeyEncryptor(publicKey);
var credentialDetails = new CredentialDetails(credentials, PrivacyLevel.Private, EncryptedConnection.Encrypted, credentialsEncryptor);
Credenciais de chave
var credentials = new KeyCredentials("TestKey");
var credentialsEncryptor = new AsymmetricKeyEncryptor(publicKey);
var credentialDetails = new CredentialDetails(credentials, PrivacyLevel.Private, EncryptedConnection.Encrypted, credentialsEncryptor);
Credenciais do OAuth2
var credentials = new OAuth2Credentials("TestToken");
var credentialsEncryptor = new AsymmetricKeyEncryptor(publicKey);
var credentialDetails = new CredentialDetails(credentials, PrivacyLevel.Private, EncryptedConnection.Encrypted, credentialsEncryptor);
Credenciais anônimas
var credentials = new AnonymousCredentials();
var credentialDetails = new CredentialDetails(credentials, PrivacyLevel.Private, EncryptedConnection.NotEncrypted);
Solução de problemas
Nenhum ID de gateway nem de fonte de dados foi encontrado ao chamar "obter fontes de dados"
Esse problema significa que o modelo semântico não está associado a um gateway. Ao criar um novo modelo semântico, uma fonte de dados sem credenciais será criada automaticamente no gateway de nuvem do usuário para cada conexão de nuvem. O gateway de nuvem é usado para armazenar as credenciais para conexões de nuvem.
Depois de criar o modelo semântico, uma associação automática é criada entre o conjunto de dados e um gateway adequado, que contém as fontes de dados correspondente para todas as conexões. A vinculação automática falha se não houver um gateway adequado ou gateways adequados.
Se você estiver usando modelos semânticos no local, crie as fontes de dados locais ausentes e associe o modelo semântico a um gateway manualmente usando Associar ao Gateway.
Para descobrir os gateways que podem ser vinculados, use Descobrir Gateways.