ADVERTISEMENT

【Excel】Power Queryで会社PCの資格情報を他人に渡さず共有する方法

【Excel】Power Queryで会社PCの資格情報を他人に渡さず共有する方法
🛡️ 超解決

Power Queryでデータソースに接続する際、接続文字列やパスワードをクエリ内に直接記述していないでしょうか。そのままファイルを共有すると、資格情報が他人に渡ってしまうリスクがあります。特に会社PCでは、情報漏洩を防ぐために安全な共有方法を理解しておく必要があります。この記事では、Power Queryの資格情報管理の仕組みを踏まえた上で、他人にパスワードを教えずにクエリを共有する具体的な方法を、比較表や手順、失敗パターンとあわせて解説します。

【要点】この記事で確認すること

  • 最初に見る場所: Power Queryエディタの「データソース設定」と「パラメーター」機能。これらを適切に使えば資格情報をクエリから分離できます。
  • 切り分けの軸: 現在のクエリ内に資格情報がベタ書きされているか、パラメーターやWindows認証を利用しているか。共有前に必ず確認しましょう。
  • 注意点: 会社のセキュリティポリシーに反する方法を選ばないこと。管理者と調整の上、組織のデータゲートウェイやPower BI Serviceの活用も検討してください。

ADVERTISEMENT

Power Queryの資格情報管理の仕組み

Power Queryはデータソースに接続する際、ユーザーごとに資格情報をWindowsの資格情報マネージャーに保存します。クエリファイル(.pqまたはExcelブック内のクエリ)には、データソースの種類やサーバー名などの接続情報は含まれますが、パスワードそのものは通常保存されません。ただし、手動でパスワードをクエリのM言語内に記述した場合は、その文字列がクエリ定義としてファイルに含まれてしまいます。これが共有時の問題を引き起こす原因です。また、プライバシーレベル(プライベート、組織、パブリック)の設定も資格情報の振る舞いに影響します。適切なプライバシーレベルを設定しないと、データの結合時に期待通りに動作しない場合があります。

お探しの解決策が見つからない場合は、こちらの「Excelトラブル完全解決データベース」で他のエラー原因や解決策をチェックしてみてください。

資格情報を他人に渡さず共有するための基本戦略

安全に共有するためには、資格情報をクエリから完全に分離し、各ユーザーが自分の資格情報を個別に設定できるようにすることが基本です。主な方法として、パラメーター化、Windows認証の活用、外部ファイルからの読み込み、Power BI Serviceの共有データセットの利用があります。それぞれにメリットとデメリットがあるため、以下の表で比較します。

方法 メリット デメリット
パラメーター化 クエリ内に資格情報が含まれず、パラメーターの値はユーザーが入力 パラメーターの値もファイルに保存されるため、完全な分離は難しい場合がある
Windows認証(統合認証) Active Directory環境でパスワード不要、ユーザーごとに自動認証 組織外のユーザーやゲストでは使えない、環境依存
外部ファイルからの読み込み 資格情報を別ファイル(設定用Excelなど)に保存し、クエリから参照 別ファイルの管理が煩雑、ファイル自体へのアクセス制御が必要
Power BI Service共有データセット 資格情報はサービス上で一元管理、Excelから安全に接続可能 Power BI Pro以上のライセンスとデータゲートウェイの設定が必要

これらの方法を単独または組み合わせて使用することで、資格情報の漏洩リスクを大幅に低減できます。次に、実際の手順を説明します。

具体的な実装手順(例:SQL Server接続のパラメーター化)

ここでは、SQL Serverに接続するPower Queryクエリを例に、パラメーターを使って資格情報を分離する手順を紹介します。Windows認証が使える場合はそちらを優先するとより安全ですが、認証方式を選択できる場合の手順です。

  1. Power Queryエディタを開き、「パラメーターの管理」から新しいパラメーターを作成します。例として「ServerName」(テキスト)、「DatabaseName」(テキスト)、「UserName」(テキスト)、「Password」(テキスト、機密性を「秘密」に設定)の4つを作成します。
  2. 既存のクエリを開き、ソースステップの接続文字列を、作成したパラメーターを使用するように書き換えます。例えば「Sql.Database(ServerName, DatabaseName, [Credential=WindowsCredential()])」の代わりに、ユーザー名とパスワードを直接指定する場合は「Sql.Database(ServerName, DatabaseName, [Credential=Credentials.FromWindowsIntegrated()])」のようにします。ただし、パスワードを渡す場合はM関数「Credentials.FromPassword」を使いますが、パラメーターから動的に渡すようにします。
  3. パラメーターの初期値としてテスト用の値を設定しますが、共有する前に初期値を空欄に変更するか、パラメーターのプロパティで「必須」に設定してユーザーに入力を促します。
  4. クエリを閉じて適用した後、Excelファイルを保存します。この状態ではクエリ定義に資格情報は含まれていません。ただし、パラメーターの値(テスト用に設定したもの)はブック内に保存されるため、共有前にパラメーターの値をクリアする必要があります。
  5. パラメーターの値をクリアするには、Power Queryエディタの「パラメーターの管理」で各パラメーターの現在の値を削除し、空にします。また、パラメーターの機密性を「秘密」に設定しておくと、クエリのプロパティからパラメーター値が表示されにくくなります(完全な保護ではありません)。

注意点として、パラメーターの値はブックファイル(.xlsx)のXML内部に保存されるため、高度な解析により値が漏れる可能性があります。より堅牢にするには、パラメーターの初期値を設定せず、毎回ユーザーに入力させるか、Windows認証を使用することを検討してください。Windows認証を使用する場合、パラメーター化は不要で、クエリ側で「Windows認証を使用する」を選択するだけです。

ADVERTISEMENT

組織での共有方法(Power BI Serviceとの連携)

大規模な組織では、Power BI Serviceの共有データセットを利用する方法が推奨されます。Power BI Service上でデータソースの資格情報を一元管理し、Excelからはそのデータセットを参照する形でPower Queryを使います。この場合、Excelファイル自体には資格情報が一切含まれず、各ユーザーは自分のPower BIアカウントで認証するため、安全です。手順の概要は以下の通りです。

  1. Power BI Desktopでデータソースに接続し、必要な変換を加えたデータセットをPower BI Serviceに公開します。
  2. Power BI Service上でデータセットのデータソース設定を行い、資格情報を適切に設定します(Windows認証、Basic認証など)。
  3. Excelの「データ」タブから「Power BIデータセット」を選択し、公開されたデータセットに接続します。これでPower Queryが生成されます。
  4. Excelファイルを他のユーザーと共有する場合、各ユーザーは自分のPower BIアカウントでサインインし、必要な権限があればデータを取得できます。

管理者に確認すべきポイント: この方法を利用するには、組織でPower BI ProまたはPremiumライセンス、データゲートウェイのセットアップ、行レベルセキュリティ(RLS)の設定などが必要です。また、Power BI Serviceへのアクセス権限付与のポリシーを確認しておきましょう。

セキュリティ面での失敗パターンと対策

資格情報を安全に共有するつもりでも、よくある失敗パターンがあります。代表的なものを挙げ、その対策を紹介します。

  • 失敗パターン1:クエリ内にパスワードを直書きして共有
    対策:前述のパラメーター化やWindows認証に変更しましょう。既存のクエリは「詳細エディタ」で確認し、Credentials.FromPasswordなどの関数にパスワード文字列が直接書かれていないかチェックします。
  • 失敗パターン2:パラメーターの初期値に本番パスワードを設定したまま共有
    対策:共有前には必ずパラメーターの値をクリアし、初期値を空かダミーにします。また、パラメーターの機密性を「秘密」に設定しても値はブック内に残ることを認識しておきましょう。
  • 失敗パターン3:Windows認証が使える環境でBasic認証を使用している
    対策:Active Directory環境であれば、データソースの認証方式をWindows認証に変更します。これにより、パスワードのやり取りが不要になり、各ユーザーのAD資格情報で認証されます。
  • 失敗パターン4:共有フォルダに置いたPower Queryファイルにパスワードを埋め込んでいる
    対策:共有フォルダのアクセス権限を適切に設定するだけでなく、クエリ自体にパスワードを含めないようにします。どうしても必要な場合は、別途暗号化された設定ファイルから読み込む方法を検討します。

よくある質問(FAQ)

  • Q: パラメーターでパスワードを設定しても、クエリにパスワードが残らないのですか?
    A: パラメーターの値はブックファイルに保存されます。完全に残さないためには、パラメーターの初期値を設定せず、ユーザーに毎回入力させるか、Windows認証を使用します。
  • Q: Windows認証が使えない環境ではどうすればいいですか?
    A: パラメーター化に加えて、資格情報を外部の安全なストレージ(Azure Key Vaultなど)から取得する方法が考えられますが、Power Query単体では難しく、Power Automateなどの組み合わせが必要になる場合があります。組織のIT部門に相談しましょう。
  • Q: クエリを複数の人で使うとき、資格情報はどう同期すればいいですか?
    A: 各ユーザーが自分の資格情報を個別に設定する前提であれば、同期は不要です。もし全員が同じサービスアカウントを使う場合は、パラメーター化して一箇所で管理するか、Power BI Serviceの共有データセットを利用します。
  • Q: パラメーターの値を変更してもクエリが更新されないのはなぜですか?
    A: パラメーターの値を変更した後、クエリエディタで「最新の情報に更新」を実行するか、テーブルを右クリックして「更新」を選択してください。また、パラメーターがクエリのソースで使用されていることを確認します。

まとめ

Power Queryでデータソースにアクセスする際、資格情報をクエリから分離することは、情報漏洩を防ぐために欠かせません。パラメーター化やWindows認証の採用、Power BI Serviceの共有データセットの利用など、状況に応じた方法を選択しましょう。共有前には必ずクエリ内にパスワードが直接書かれていないか確認し、パラメーターの値も適切に管理してください。組織のセキュリティポリシーに従い、必要に応じて管理者の指導を仰ぐことで、安全なクエリ共有を実現できます。


📊
Excelトラブル完全解決データベースこの記事以外にも、様々なエラー解決策をまとめています。困った時の逆引きに活用してください。

ADVERTISEMENT

この記事の監修者
📈

超解決 Excel・Word研究班

企業のDX支援や業務効率化を専門とする技術者チーム。20年以上のExcel・Word運用改善実績に基づき、不具合の根本原因と最短の解決策を監修しています。ExcelとWordを使った「やりたいこと」「困っていること」「より便利な使い方」をクライアントの視点で丁寧に提供します。

🏆
超解決 Excel検定 あなたのExcel実務能力を3分で測定!【1級・2級・3級】

ADVERTISEMENT