Jaa kautta


Tunnistetietojen määrittäminen Power BI:hin ohjelmallisesti

KOSKEE: Sovellus omistaa tiedot Käyttäjä omistaa tiedot

Jos haluat määrittää Power BI:hin tunnistetiedot ohjelmallisesti, noudata tämän artikkelin ohjeita. Tunnistetietojen ohjelmamäärittämisen avulla voit myös salata tunnistetiedot.

Muistiinpano

  • Kutsuvan käyttäjän on oltava semanttisen mallin omistaja tai yhdyskäytävän järjestelmänvalvoja. Voit käyttää myös palvelun päänimeä. Palvelun päänimi voi olla esimerkiksi semanttisen mallin omistaja.
  • Pilvitietolähteitä ja niiden tunnistetietoja hallitaan käyttäjätasolla.

Tietolähteiden tunnistetietojen saamisen päivittäminen

  1. Tutustu semanttisen mallin tietolähteisiin kutsumalla Nouda tietolähteet. Kunkin tietolähteen vastauksen leipäteksti sisältää tyypin, yhteyden tiedot, yhdyskäytävän ja tietolähteen tunnuksen.

    // Select a datasource
    var datasources = pbiClient.Datasets.GetDatasources(datasetId).Value;
    var datasource = datasources.First();
    
  2. Luo tunnistemerkkijono Tietolähde-esimerkkien päivittäminen - asetuksen mukaisesti. Tunnistemerkkijonon sisältö määräytyy tunnistetietojen tyypin mukaan.

    var credentials =  new BasicCredentials(username: "username", password :"*****");
    

    Muistiinpano

    Jos käytät pilvipalvelutietolähteitä, älä seuraa tämän osion seuraavia vaiheita. Lisää tunnistetiedot järjestelmään käyttämällä vaiheessa 1 saamaasi yhdyskäytävän tunnusta ja tietolähteen tunnusta käyttämällä kutsua Päivitä tietolähde .

  3. Nouda yhdyskäytävän julkinen avain kutsumalla Nouda yhdyskäytävä.

    var gateway = pbiClient.Gateways.GetGatewayById(datasource.GatewayId);
    
  4. Salaa tunnistetiedot.

    var credentialsEncryptor = new AsymmetricKeyEncryptor(gateway.publicKey);
    
  5. Luo salatuilla tunnistetiedoilla tarvitsemasi tunnistetiedot.

    Käytä AsymetricKeyEncryptor-luokkaa vaiheessa 3 noudetun julkisen avaimen kanssa.

    var credentialDetails = new CredentialDetails(
            credentials,
            PrivacyLevel.Private,
            EncryptedConnection.Encrypted,
            credentialsEncryptor);
    
  6. Määritä tunnistetiedot kutsumalla Päivitä tietolähde.

    pbiClient.Gateways.UpdateDatasource(datasource.GatewayId.Value, datasource.DatasourceId.Value, new UpdateDatasourceRequest(credentialDetails));
    

Uuden tietolähteen määrittäminen tietoyhdyskäytävälle

  1. Asenna koneeseesi paikallinen tietoyhdyskäytävä.

  2. Nouda yhdyskäytävän tunnus ja julkinen avain kutsumalla Nouda yhdyskäytävät.

    // Select a gateway
    var gateways = pbiClient.Gateways.GetGateways().Value;
    var gateway = gateways.First();
    
  3. Luo tunnistetiedot noudattamalla ohjeita, jotka on kuvattu osiossa Tietolähteiden tunnistetietojen päivittäminen käyttämällä vaiheessa 2 noutamaansa yhdyskäytävän julkista avainta.

  4. Luo pyynnön runko.

    var request = new PublishDatasourceToGatewayRequest(
            dataSourceType: "SQL",
            connectionDetails: "{\"server\":\"myServer\",\"database\":\"myDatabase\"}",
            credentialDetails: credentialDetails,
            dataSourceName: "my sql datasource");
    
  5. Kutsu Luo tietolähde -ohjelmointirajapintaa.

    pbiClient.Gateways.CreateDatasource(gateway.Id, request);
    

Tunnistetietotyypit

Kun kutsut tietolähteen luomista tai tietolähteen päivittämistä yrityksen paikallisen yhdyskäytävän Power BI REST -ohjelmointirajapinnasta, salaa tunnistetietoarvo käyttämällä yhdyskäytävän julkista avainta.

Muistiinpano

.NET SDK v3 voi myös suorittaa seuraavat .NET SDK v2 -esimerkit.

Windows ja perustunnistetiedot

// 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);

Avaintunnistetiedot

var credentials = new KeyCredentials("TestKey");
var credentialsEncryptor = new AsymmetricKeyEncryptor(publicKey);
var credentialDetails = new CredentialDetails(credentials, PrivacyLevel.Private, EncryptedConnection.Encrypted, credentialsEncryptor);

OAuth2-tunnistetiedot

var credentials = new OAuth2Credentials("TestToken");
var credentialsEncryptor = new AsymmetricKeyEncryptor(publicKey);
var credentialDetails = new CredentialDetails(credentials, PrivacyLevel.Private, EncryptedConnection.Encrypted, credentialsEncryptor);

Anonyymit tunnistetiedot

var credentials = new AnonymousCredentials();
var credentialDetails = new CredentialDetails(credentials, PrivacyLevel.Private, EncryptedConnection.NotEncrypted);

Vianmääritys

Yhdyskäytävää ja tietolähteen tunnusta ei löydy Nouda tietolähteet -kutsua käytettäessä

Tämä ongelma tarkoittaa, että semanttinen malli ei ole sidottu yhdyskäytävään. Kun luot uuden semanttisen mallin, käyttäjän pilviyhdyskäytävään luodaan automaattisesti tietolähde, jolla ei ole tunnistetietoja kunkin pilviyhteyden osalta. Pilviyhdyskäytävää käytetään pilviyhteyksien tunnistetietojen tallentamiseen.

Kun olet luonut semanttisen mallin, semanttisen mallin ja sopivan yhdyskäytävän välille luodaan automaattinen sidonta, joka sisältää vastaavat tietolähteet kaikille yhteyksille. Automaattinen sidonta epäonnistuu, jos sopivaa yhdyskäytävää tai yhdyskäytäviä ei ole.

Jos käytät paikallisia semanttisia malleja, luo puuttuvat paikalliset tietolähteet ja sido semanttinen malli yhdyskäytävään manuaalisesti käyttämällä Sido yhdyskäytävään -toimintoa.

Voit etsiä sitovia yhdyskäytäviä Etsi yhdyskäytävät -parametrin avulla.