表形式モデルの展開中にデータソースの資格情報を渡す方法は?

Jitendra Singh Rathor

問題:デプロイメントウィザードを使用して表形式モデルをデプロイすると。それはうまくいきます。ただし、問題は20個のデータソースがあることです。展開時に、すべてのデータソースの資格情報を要求するため、資格情報を20回提供する必要があります。これは非常に苦痛です。そのため、展開を自動化したいのです。

アプローチ:この記事https://notesfromthelifeboat.com/post/analysis-services-1-deployment/に従い、モデルを更新すると、エラーなしで表形式モデルを展開できます。以下のエラーで失敗します

サーバーへの変更の保存に失敗しました。返されたエラー: 'OLE DBまたはODBCエラー:

The credentials provided for the File source are invalid. (Source at \\share\acaidatatempshare\data\lumeneventpropertiesexport.tsv.).
OLE DB or ODBC error: The command has been canceled..
OLE DB or ODBC error: The command has been canceled..
OLE DB or ODBC error: The command has been canceled..

私のデータソースはtsvファイルで、以下はmodel.bimファイルのデータソースセクションです。ご覧のとおり、クレデンシャルのパスワードはmodel.bim、asdatabase、またはxmlaファイルに保存されません。

….
….
      {
        "type": "structured",
        "name": "File/\\\\Share\\AcaiDataTempShare\\Data\\LumenEventPropertiesExport tsv",
        "connectionDetails": {
          "protocol": "file",
          "address": {
            "path": "\\\\share\\AcaiDataTempShare\\Data\\LumenEventPropertiesExport.tsv"
          },
          "authentication": null,
          "query": null
        },
        "credential": {
          "AuthenticationKind": "Windows",
          "kind": "File",
          "path": "\\\\Share\\acaidatatempshare\\data\\lumeneventpropertiesexport.tsv",
          "Username": "domain\\username"
        },
        "contextExpression": [
          "let",
          "    #\"0001\" = Csv.Document(..., [Delimiter = \"#(tab)\", Columns = 3, Encoding = 1252, QuoteStyle = QuoteStyle.None]),",
          "    #\"0002\" = Table.TransformColumnTypes(#\"0001\", {{\"Column1\", type text}, {\"Column2\", type text}, {\"Column3\", type text}})",
         "in",
          "    #\"0002\""
        ]
      },
…..
…..

展開中にプログラムでデータソースの資格情報を渡すにはどうすればよいですか?

Jitendra Singh Rathor

これが私が作成した最終的なスクリプトです。

# Get tools path
$msBuildPath = Get-MSBuildToPath
$Microsoft_AnalysisServices_Deployment_Exe_Path = Get-Microsoft_AnalysisServices_Deployment_Exe_Path

# BUild smproj 
& $msBuildPath $projPath "/p:Configuration=validation" /t:Build

Get-ChildItem $binPath | Copy -Destination $workingFolder -Recurse

$secureStringRecreated = ConvertTo-SecureString -String $AnalysisServerPassword -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential($AnalysisServerUserName, $secureStringRecreated)
#$plainText = $cred.GetNetworkCredential().Password

#region begin Update Model.deploymenttargets
# Read Model.deploymenttargets
[xml]$deploymenttargets = Get-Content -Path  $deploymenttargetsFilePath

$deploymenttargets.DeploymentTarget.Database = $AnalysisDatabase
$deploymenttargets.DeploymentTarget.Server = $AnalysisServer
$deploymenttargets.DeploymentTarget.ConnectionString = "DataSource=$AnalysisServer;Timeout=0;UID=$AnalysisServerUserName;Password=$AnalysisServerPassword;"
$deploymenttargets.Save($deploymenttargetsFilePath);
#endregion

#region begin Update Model.deploymentoptions
# Read Model.deploymentoptions
[xml]$deploymentoptions = Get-Content -Path  $deploymentoptionsFilePath

# Update ProcessingOption to DoNotProcess otherwise correct xmla file wont be generated.
$deploymentoptions.Deploymentoptions.ProcessingOption = 'DoNotProcess'
$deploymentoptions.Deploymentoptions.TransactionalDeployment = 'false'
$deploymentoptions.Save($deploymentoptionsFilePath);
#endregion

# Create xmla deployment file.
& $Microsoft_AnalysisServices_Deployment_Exe_Path $asdatabaseFilePath  /s:$logFilePath  /o:$xmlaFilePath

#region begin Update .xmla
#Add passowrd in .xmla file.
$xmladata = Get-Content -Path $xmlaFilePath | ConvertFrom-Json

foreach ($ds in $xmladata.createOrReplace.database.model.dataSources){
    $ds.Credential.AuthenticationKind = 'Windows'
    $ds.Credential.Username = $AnalysisServerUserName

    #Add password property to the object.
    $ds.credential | Add-Member -NotePropertyName Password -NotePropertyValue $AnalysisServerPassword
}

$xmladata | ConvertTo-Json -depth 100 | Out-File $xmlaFilePath
#endregion

#Deploy model xmla.
Invoke-ASCmd -InputFile $xmlaFilePath -Server $AnalysisServer -Credential $cred`enter code here`

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Goのテストにデータベース資格情報を渡す?

分類Dev

Ajax:送信時にフォームデータと資格情報の両方を渡す方法は?

分類Dev

ddev:データベースの資格情報を変更する方法

分類Dev

ExcelPowerPivotでのデータソース資格情報の問題

分類Dev

データベースの資格情報を正しく非表示にする

分類Dev

SQLServerで表形式モデルのデータソースを設定する

分類Dev

hsqlデータベースの使用中にliferayから管理者の資格情報を取得する

分類Dev

資格情報をSOAP Webサービスに渡す方法は?

分類Dev

Spark Java の動的データベース構成資格情報を提供する方法は?

分類Dev

Audit.NETはデータベースの資格情報を動的に取得します

分類Dev

AzureSQLデータベースのユーザーにデータベーススコープの資格情報を付与する方法

分類Dev

AzureSQLデータベースのユーザーにデータベーススコープの資格情報を付与する方法

分類Dev

クライアント資格情報の変更を使用するようにJBoss / Wildflyデータソースを設定することは可能ですか?

分類Dev

データベースからの資格情報を確認します

分類Dev

表形式のデータをローカルに保存する方法

分類Dev

Windows認証でデフォルトの資格情報を渡す方法

分類Dev

データベース接続の資格情報の保存

分類Dev

PHPWebサイト内のデータベース資格情報を安全に保存する場所

分類Dev

SQLMapの資格情報を使用してデータベースに直接接続する

分類Dev

基本HTTP認証の資格情報をサーバー側のデータベースに保存するにはどうすればよいですか?

分類Dev

コードでデフォルトのWindows資格情報を呼び出す方法は?

分類Dev

Herokuの永続的なデータベース資格情報

分類Dev

表形式のデータを格納するデータベーステーブルを設定するにはどうすればよいですか?

分類Dev

PowerBI-データベースのユーザー資格情報を他のアカウントに変更することはできません

分類Dev

SSDT (Visual Studio 2017) のデータベース スコープの資格情報に関する問題

分類Dev

リモートデスクトップで現在の資格情報を使用するにはどうすればよいですか?

分類Dev

VSAMパスワードファイルの資格情報をCOBOLに保存する方法は?

分類Dev

pyodbcはデータベースへの接続に失敗しますが、IBMデータスタジオは同じ資格情報で接続します

分類Dev

Azure ActiveDirectory資格情報を使用してローカルSQLServerデータベースに接続する

Related 関連記事

  1. 1

    Goのテストにデータベース資格情報を渡す?

  2. 2

    Ajax:送信時にフォームデータと資格情報の両方を渡す方法は?

  3. 3

    ddev:データベースの資格情報を変更する方法

  4. 4

    ExcelPowerPivotでのデータソース資格情報の問題

  5. 5

    データベースの資格情報を正しく非表示にする

  6. 6

    SQLServerで表形式モデルのデータソースを設定する

  7. 7

    hsqlデータベースの使用中にliferayから管理者の資格情報を取得する

  8. 8

    資格情報をSOAP Webサービスに渡す方法は?

  9. 9

    Spark Java の動的データベース構成資格情報を提供する方法は?

  10. 10

    Audit.NETはデータベースの資格情報を動的に取得します

  11. 11

    AzureSQLデータベースのユーザーにデータベーススコープの資格情報を付与する方法

  12. 12

    AzureSQLデータベースのユーザーにデータベーススコープの資格情報を付与する方法

  13. 13

    クライアント資格情報の変更を使用するようにJBoss / Wildflyデータソースを設定することは可能ですか?

  14. 14

    データベースからの資格情報を確認します

  15. 15

    表形式のデータをローカルに保存する方法

  16. 16

    Windows認証でデフォルトの資格情報を渡す方法

  17. 17

    データベース接続の資格情報の保存

  18. 18

    PHPWebサイト内のデータベース資格情報を安全に保存する場所

  19. 19

    SQLMapの資格情報を使用してデータベースに直接接続する

  20. 20

    基本HTTP認証の資格情報をサーバー側のデータベースに保存するにはどうすればよいですか?

  21. 21

    コードでデフォルトのWindows資格情報を呼び出す方法は?

  22. 22

    Herokuの永続的なデータベース資格情報

  23. 23

    表形式のデータを格納するデータベーステーブルを設定するにはどうすればよいですか?

  24. 24

    PowerBI-データベースのユーザー資格情報を他のアカウントに変更することはできません

  25. 25

    SSDT (Visual Studio 2017) のデータベース スコープの資格情報に関する問題

  26. 26

    リモートデスクトップで現在の資格情報を使用するにはどうすればよいですか?

  27. 27

    VSAMパスワードファイルの資格情報をCOBOLに保存する方法は?

  28. 28

    pyodbcはデータベースへの接続に失敗しますが、IBMデータスタジオは同じ資格情報で接続します

  29. 29

    Azure ActiveDirectory資格情報を使用してローカルSQLServerデータベースに接続する

ホットタグ

アーカイブ