Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Относится к:✅ встроенная аналитика Power BI для ваших клиентов (App-owns-data) и встроенная аналитика Power BI для вашей организации (User-owns-data)
Чтобы настроить учетные данные программным способом для Power BI, выполните действия, описанные в этой статье. Настройка учетных данных программным способом позволяет шифровать учетные данные.
Примеры, приведенные в этой статье, находятся в .NET в C#. Чтобы найти примеры в Java, Python и PowerShell, перейдите в соответствующий репозиторий. Примеры шифрования учетных данных KeyPair см. в Python и PowerShell. Примеры шифрования учетных данных KeyPair см. в Python и PowerShell.
Примечание.
- Вызывающий пользователь или субъект-службы должны быть владельцем семантической модели или администратором шлюза.
- Облачные источники данных и соответствующие учетные данные управляются на уровне пользователя.
Обновление потока учетных данных для источников данных
Обнаружение источников данных семантической модели путем вызова get Datasources. Текст ответа для каждого источника данных содержит тип, сведения о подключении, шлюз и идентификатор источника данных.
// Select a datasource var datasources = pbiClient.Datasets.GetDatasources(datasetId).Value; var datasource = datasources.First();Создайте строку учетных данных в соответствии с примерами обновления источника данных. Содержимое строки учетных данных зависит от типа учетных данных.
var credentials = new BasicCredentials(username: "username", password :"*****");Примечание.
Если вы используете облачные источники данных, не выполните следующие действия, описанные в этом разделе. Вызовите Update Datasource, чтобы указать учетные данные, используя идентификатор шлюза и идентификатор источника данных, полученные на шаге 1.
Получите открытый ключ шлюза, вызвав Get Gateway.
var gateway = pbiClient.Gateways.GetGatewayById(datasource.GatewayId);Шифрование учетных данных.
var credentialsEncryptor = new AsymmetricKeyEncryptor(gateway.publicKey);Создайте сведения об учетных данных с зашифрованными учетными данными.
Используйте класс AsymetricKeyEncryptor с открытым ключом, извлеченным на шаге 3.
var credentialDetails = new CredentialDetails( credentials, PrivacyLevel.Private, EncryptedConnection.Encrypted, credentialsEncryptor);Задайте учетные данные путем вызова update Datasource.
pbiClient.Gateways.UpdateDatasource(datasource.GatewayId.Value, datasource.DatasourceId.Value, new UpdateDatasourceRequest(credentialDetails));
Настройка нового источника данных для шлюза данных
Установите локальный шлюз данных на компьютере.
Получите идентификатор шлюза и открытый ключ, вызвав метод Get Gateways.
// Select a gateway var gateways = pbiClient.Gateways.GetGateways().Value; var gateway = gateways.First();Сформируйте сведения об учетных данных, выполнив процедуру, описанную в разделе обновления учетных данных для источников данных, с помощью открытого ключа шлюза, полученного на шаге 2.
Создайте текст запроса.
var request = new PublishDatasourceToGatewayRequest( dataSourceType: "SQL", connectionDetails: "{\"server\":\"myServer\",\"database\":\"myDatabase\"}", credentialDetails: credentialDetails, dataSourceName: "my sql datasource");Вызовите API создания источника данных.
pbiClient.Gateways.CreateDatasource(gateway.Id, request);
Типы учетных данных
При вызове create Datasource или Update Datasource из REST API Power BI на локальном шлюзе зашифруйте значение учетных данных с помощью открытого ключа шлюза.
Примечание.
Пакет SDK для .NET версии 3 также может выполнять следующие примеры пакета SDK для .NET версии 2.
Учетные данные Windows и базовые учетные данные
// 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);
Ключевые учетные данные
var credentials = new KeyCredentials("TestKey");
var credentialsEncryptor = new AsymmetricKeyEncryptor(publicKey);
var credentialDetails = new CredentialDetails(credentials, PrivacyLevel.Private, EncryptedConnection.Encrypted, credentialsEncryptor);
Учетные данные OAuth2
var credentials = new OAuth2Credentials("TestToken");
var credentialsEncryptor = new AsymmetricKeyEncryptor(publicKey);
var credentialDetails = new CredentialDetails(credentials, PrivacyLevel.Private, EncryptedConnection.Encrypted, credentialsEncryptor);
Анонимные учетные данные
var credentials = new AnonymousCredentials();
var credentialDetails = new CredentialDetails(credentials, PrivacyLevel.Private, EncryptedConnection.NotEncrypted);
Устранение неполадок
При вызове источников данных не найдено идентификатора шлюза и источника данных
Эта проблема означает, что семантическая модель не привязана к шлюзу. При создании новой семантической модели источник данных без учетных данных создается автоматически на облачном шлюзе пользователя для каждого облачного подключения. Облачный шлюз используется для хранения учетных данных для облачных подключений.
После создания семантической модели создается автоматическая привязка между семантической моделью и подходящим шлюзом, который содержит соответствующие источники данных для всех подключений. Автоматическая привязка завершается ошибкой, если подходящий шлюз или шлюзы отсутствуют.
Если вы используете локальные семантические модели, создайте отсутствующие локальные источники данных и привязите семантику модели к шлюзу вручную с помощью привязки к шлюзу.
Чтобы найти шлюзы, доступные для привязки, используйте Поиск шлюзов.