none
SSAS MDXでロール設定(が効いたかどうか)を確認したい RRS feed

  • 質問

  • 環境 SQLServer2008(Dev Ed.)

    SSASでロールの設定をしています。
    メンバシップはADのユーザ(グループ)で、ディメンションデータを設定しています

    SSMSでキューブ参照 -> セキュリティコンテキスト変更で確認はできますが、
    結局プログラムからはMDXでデータを取るので
    MDXの結果でロール設定が効いてるかどうか確認したいのです。

    一番いいのは、あるユーザのアカウントでクエリ発行したら、
    こういう結果が取れます、なのですが。。

    みなさん、どうやってロールの確認をしているのでしょうか?
    2010年6月8日 7:40

回答

  • >SSMSでキューブ参照

    この確認でも MDX が発行されて動作してますので、"MDXの結果"という点については差異はありません。
    キューブ実装の"単体テスト"としてはではこれで良いのではないでしょうか。
    BIDSでも同じことができますね。



    >結局プログラムからはMDXでデータを取るので

    プログラムとはASP.NETアプリケーションか、Windowsアプリケーションだと思います。
    そこでのADOMD.NETの接続文字列の内容を書き換えることで(例えばUserを直接書く)、
    ADOMD.NETアプリケーションとキューブの間の"結合テスト"のようなことはできると思います。



    権限に関する"総合テスト"のようなことを行いたいなら、該当ユーザーでログインして操作することになると思います。



    何を対象にどのようなテストをしたいのか、によるのではないでしょうか。
    ※どこまでのテストが必要か、という議論は無視しています。
    ※なお、テストの手段という意味で、接続文字列に Roles を書く例を見つけましたのでついでにURLをメモしておきます。
    http://blogs.pointbridge.com/Blogs/burger_mike/Pages/Post.aspx?_ID=16
    http://kevin_s_goff.typepad.com/kevin_s_goff_weblog/2009/12/1242009---testing-ssas-roles-in-excel.html



    ※他のテスト方式のアイデアがあれば私も知りたいです。
    • 回答の候補に設定 山本春海 2010年6月11日 1:33
    • 回答としてマーク pomodoro 2010年6月14日 5:35
    2010年6月8日 9:07

すべての返信

  • >SSMSでキューブ参照

    この確認でも MDX が発行されて動作してますので、"MDXの結果"という点については差異はありません。
    キューブ実装の"単体テスト"としてはではこれで良いのではないでしょうか。
    BIDSでも同じことができますね。



    >結局プログラムからはMDXでデータを取るので

    プログラムとはASP.NETアプリケーションか、Windowsアプリケーションだと思います。
    そこでのADOMD.NETの接続文字列の内容を書き換えることで(例えばUserを直接書く)、
    ADOMD.NETアプリケーションとキューブの間の"結合テスト"のようなことはできると思います。



    権限に関する"総合テスト"のようなことを行いたいなら、該当ユーザーでログインして操作することになると思います。



    何を対象にどのようなテストをしたいのか、によるのではないでしょうか。
    ※どこまでのテストが必要か、という議論は無視しています。
    ※なお、テストの手段という意味で、接続文字列に Roles を書く例を見つけましたのでついでにURLをメモしておきます。
    http://blogs.pointbridge.com/Blogs/burger_mike/Pages/Post.aspx?_ID=16
    http://kevin_s_goff.typepad.com/kevin_s_goff_weblog/2009/12/1242009---testing-ssas-roles-in-excel.html



    ※他のテスト方式のアイデアがあれば私も知りたいです。
    • 回答の候補に設定 山本春海 2010年6月11日 1:33
    • 回答としてマーク pomodoro 2010年6月14日 5:35
    2010年6月8日 9:07
  • nagasakitさん、返信ありがとうございます。

    SSMSでロール指定をしてMDX発行してのテストはできました。
    EXCELからもテストが必要なので助かります。

    ですが、ユーザ指定の場合、エラーになります。

    SSMS
    (ロール1,ロール2にはeffectiveusernameのユーザを割当て済み)

    ログインの追加接続パラメータを設定(ユーザは管理者)
    roles=ロール1,ロール2,effectiveusername=ドメイン\ユーザ
    ->OK

    roles=ロール1,ロール2
    ->OK(上記と同じ結果)

    effectiveusername=ドメイン\ユーザ
    ->NG。
    現在ログオン要求を処理できるログオンサーバはありません。
    (サーバ機上のSSMSから実行してもNG)


    キューブ参照
    ->ユーザ変更->その他のユーザ
    ->NG。
    ドメイン\ユーザ
    現在ログオン要求を処理できるログオンサーバはありません。



    同じコンピュータで、上記ユーザにWindowsログオンしてもらい、
    SSMSを実行すると問題ないのですが。
    ユーザによって、保持するロール(複数)が異なるので、ユーザ指定で確認したいです。
    何か根本的な問題があるのでしょうか。

    2010年6月10日 2:52
  • すいませんが、EffectiveUserName が期待どおりに動作しない理由は分かりません。
    (Kerberos で認証できるようにSSASを構成しておく必要がある、というような記述を見かけましたのでそのあたりかもしれません。
    詳しくないのでお答えできません...)



    そういえば、ログインよりましな方法として、runas コマンド(右クリックして 別のユーザーとして実行 )がありましたね。
    ここで ssms.exe を runas で動かす例が投稿されていました。
    http://social.msdn.microsoft.com/Forums/en-US/sqlanalysisservices/thread/d91f6071-a1b4-43a5-8dfe-06a20c483502
    2010年6月10日 9:19
  • すいませんが、EffectiveUserName が期待どおりに動作しない理由は分かりません。
    (Kerberos で認証できるようにSSASを構成しておく必要がある、というような記述を見かけましたのでそのあたりかもしれません。
    詳しくないのでお答えできません...)



    そういえば、ログインよりましな方法として、runas コマンド(右クリックして 別のユーザーとして実行 )がありましたね。
    ここで ssms.exe を runas で動かす例が投稿されていました。
    http://social.msdn.microsoft.com/Forums/en-US/sqlanalysisservices/thread/d91f6071-a1b4-43a5-8dfe-06a20c483502

    nagasakitさん、返信ありがとうございます。

    EffectiveUserName  はとりあえずあきらめました。

    runas はパスワードが要るので、任意のユーザは無理なので、そのユーザと同じロールを持つ

    ユーザを作る方法になりそうです。

    他に思いついたのは、面倒ですが、任意のユーザが持っているロールを取得する仕組みを作って、

    roles= 指定で実行、です。


    2010年6月14日 5:34