Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
VAN TOEPASSING OP: App is eigenaar van gegevens
die gebruiker eigenaar is van gegevens
Als u referenties programmatisch wilt configureren voor Power BI, volgt u de stappen in dit artikel. Als u referenties programmatisch configureert, kunt u ook referenties versleutelen.
Notitie
- De aanroepende gebruiker moet een semantische modeleigenaar of een gatewaybeheerder zijn. U kunt ook een service-principal gebruiken. De service-principal kan bijvoorbeeld de semantische modeleigenaar zijn.
- Cloudgegevensbronnen en de bijbehorende referenties worden beheerd op gebruikersniveau.
De referentiestroom voor gegevensbronnen bijwerken
Ontdek de gegevensbronnen van het semantische model door Get Datasources aan te roepen. De hoofdtekst van het antwoord voor elke gegevensbron bevat het type, de verbindingsgegevens, de gateway en de gegevensbron-id.
// Select a datasource var datasources = pbiClient.Datasets.GetDatasources(datasetId).Value; var datasource = datasources.First();Bouw de referentietekenreeks op basis van de voorbeelden van updategegevensbronnen. De inhoud van de referentietekenreeks is afhankelijk van het type referenties.
var credentials = new BasicCredentials(username: "username", password :"*****");Notitie
Als u cloudgegevensbronnen gebruikt, volgt u de volgende stappen in deze sectie niet. Roep De gegevensbron bijwerken aan om de referenties in te stellen met behulp van de gateway-id en de gegevensbron-id die u in stap 1 hebt verkregen.
Haal de openbare sleutel van de gateway op door Get Gateway aan te roepen.
var gateway = pbiClient.Gateways.GetGatewayById(datasource.GatewayId);Versleutel de referenties.
var credentialsEncryptor = new AsymmetricKeyEncryptor(gateway.publicKey);Bouw de referentiegegevens met versleutelde referenties.
Gebruik de klasse AsymetricKeyEncryptor met de openbare sleutel die u in stap 3 hebt opgehaald.
var credentialDetails = new CredentialDetails( credentials, PrivacyLevel.Private, EncryptedConnection.Encrypted, credentialsEncryptor);Stel referenties in door Update Datasource aan te roepen.
pbiClient.Gateways.UpdateDatasource(datasource.GatewayId.Value, datasource.DatasourceId.Value, new UpdateDatasourceRequest(credentialDetails));
Een nieuwe gegevensbron configureren voor een gegevensgateway
Installeer de on-premises gegevensgateway op uw computer.
Haal de gateway-id en de openbare sleutel op door Gateways ophalen aan te roepen.
// Select a gateway var gateways = pbiClient.Gateways.GetGateways().Value; var gateway = gateways.First();Bouw referentiedetails door de procedure te volgen die wordt beschreven in de stroom referenties bijwerken voor gegevensbronnen met behulp van de openbare gatewaysleutel die u in stap 2 hebt opgehaald.
Bouw de hoofdtekst van de aanvraag.
var request = new PublishDatasourceToGatewayRequest( dataSourceType: "SQL", connectionDetails: "{\"server\":\"myServer\",\"database\":\"myDatabase\"}", credentialDetails: credentialDetails, dataSourceName: "my sql datasource");Roep de Datasource-API maken aan.
pbiClient.Gateways.CreateDatasource(gateway.Id, request);
Referentietypen
Wanneer u Gegevensbron maken aanroept of Gegevensbron bijwerkt vanuit de Power BI REST API op een on-premises bedrijfsgateway, versleutelt u de waarde van de referenties met behulp van de openbare sleutel van de gateway.
Notitie
.NET SDK v3 kan ook de volgende .NET SDK v2-voorbeelden uitvoeren.
Windows en basisreferenties
// 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);
Sleutelreferenties
var credentials = new KeyCredentials("TestKey");
var credentialsEncryptor = new AsymmetricKeyEncryptor(publicKey);
var credentialDetails = new CredentialDetails(credentials, PrivacyLevel.Private, EncryptedConnection.Encrypted, credentialsEncryptor);
OAuth2-referenties
var credentials = new OAuth2Credentials("TestToken");
var credentialsEncryptor = new AsymmetricKeyEncryptor(publicKey);
var credentialDetails = new CredentialDetails(credentials, PrivacyLevel.Private, EncryptedConnection.Encrypted, credentialsEncryptor);
Anonieme referenties
var credentials = new AnonymousCredentials();
var credentialDetails = new CredentialDetails(credentials, PrivacyLevel.Private, EncryptedConnection.NotEncrypted);
Probleemoplossing
Er worden geen gateway- en gegevensbron-id gevonden bij het aanroepen van gegevensbronnen
Dit probleem betekent dat het semantische model niet is gebonden aan een gateway. Wanneer u een nieuw semantisch model maakt, wordt er automatisch een gegevensbron zonder referenties gemaakt op de cloudgateway van de gebruiker voor elke cloudverbinding. De cloudgateway wordt gebruikt om de referenties voor cloudverbindingen op te slaan.
Nadat u het semantische model hebt gemaakt, wordt er een automatische binding gemaakt tussen het semantische model en een geschikte gateway, die overeenkomende gegevensbronnen voor alle verbindingen bevat. De automatische binding mislukt als er geen geschikte gateway of gateways zijn.
Als u on-premises semantische modellen gebruikt, maakt u de ontbrekende on-premises gegevensbronnen en verbindt u het semantische model handmatig aan een gateway met behulp van Bind To Gateway.
Als u gateways wilt detecteren die kunnen worden verbonden, gebruikt u Discover Gateways.