2016-09-08 80 views
0

現在、Power BI DesktopとSQL Server 2014をPOC(概念実証)上で使用しています。私の上司から質問されました()。それが可能かどうかを知らずに私が求めていることをすることができる...)。Power BIからDAXパラメータを使用してストアドプロシージャを呼び出します。

私は(高度なオプションで入力した)SQL命令

クエリとSQL Serverのからの新しいデータソースを作成するときに電源BIにストアドプロシージャの結果を見ることができますよ。 Sql.Database("SERVER\INSTANCE", "DatabaseName", [Query="EXECUTE [dbo].[StoredProcedureName]"])
出典:How to use SQL Server stored procedures in Microsoft PowerBI?

私もUSERNAME()DAX式を使用して、私のWindowsログインを表示することができますよ。

Windowsログインをパラメータとして使用する多くのストアドプロシージャを使用しており、電源BIレポートがオンラインで公開されるときにUSERNAME()が同じ値を返さないことを知っています。したがって、テーブルを作成する必要があります。ユーザーのWindowsログインとPower BIアカウント(電子メールアドレス)の間の対応を可能にします。

私の質問は簡単です:このストアドプロシージャのパラメータとしてUSERNAME()の結果を使用してPower BIでストアドプロシージャを呼び出せるかどうかを知りたいと思います。

すべてのヘルプは高く評価され、私は...前

+0

他にも解決策があるかもしれませんが、このシナリオではAFAIKはサポートされていません。 –

+0

@MikeHoney私はそれがサポートされていないとはかなり確信していたが、質問することは何もない...私のポストに答えるためにありがとう – Jae

答えて

1

をパワーBIを使用していないとして、私は現時点ではかなりこだわっている私は、あなたがする求めているものを行うための方法を持っていません( DAXでUSERNAME()の結果を取得し、クエリエディタのストアドプロシージャにパラメータとして渡します)。

この記事は働くかもしれないいくつかの提案があるものの、私はまた、直接クエリエディタから、現在のユーザーの情報をつかむための方法を知らない:https://querypower.com/2017/04/03/4-ways-to-get-username-in-power-query/

を私は何を言われてパワーBIが行を含まないことですhttps://powerbi.microsoft.com/en-us/documentation/powerbi-admin-rls/

行レベルのセキュリティもSSASで実現することができる:https://powerbi.microsoft.com/en-us/documentation/powerbi-desktop-tutorial-row-level-security-onprem-ssas-tabular/

ているので代わりにA受け入れるストアドプロシージャを持つのそれはあなたのデザインを変更することが必要になり、私は強く検討をお勧めしたいレベルのセキュリティ機能テキストPAユーザーがレポートを実行したときにそのユーザーのデータのみを返すと、モデルはすべてのユーザーのデータを取得し、Power BIはRLSを使用してレポートを表示するユーザーの結果をフィルタリングします。

これを行うメリットは、誰もが同じ基本データモデルのフィルタリングされたバージョンにアクセスしているため、データモデルそのものが各ユーザーに完全にリフレッシュする必要がないことです-users)。

もう1つの利点は、Power BIが提供する組み込みセキュリティツールを使用して、独自のソリューションを独自のマッピングテーブルで展開するのではなく、 (あなたのソリューションは悪いわけではありませんが、独自のマッピングテーブルに基づいて独自のソリューションを展開すると、リスクが増し、サポートが少なくなります。)

すでにDAXのUSERNAME()パラメータを認識しているので、あなたはすでにRLSを認識していて、それを否定していたと思います。しかし、それはすでに言及されていないので、私は同じことをしようとしているかもしれない他の人たちに少なくとも言及すべきだと思った。

関連する問題