トップ回答者
SSAS MDXでロール設定(が効いたかどうか)を確認したい

質問
回答
-
>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=16http://kevin_s_goff.typepad.com/kevin_s_goff_weblog/2009/12/1242009---testing-ssas-roles-in-excel.html
※他のテスト方式のアイデアがあれば私も知りたいです。
すべての返信
-
>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=16http://kevin_s_goff.typepad.com/kevin_s_goff_weblog/2009/12/1242009---testing-ssas-roles-in-excel.html
※他のテスト方式のアイデアがあれば私も知りたいです。 -
nagasakitさん、返信ありがとうございます。
SSMSでロール指定をしてMDX発行してのテストはできました。EXCELからもテストが必要なので助かります。
ですが、ユーザ指定の場合、エラーになります。
SSMS(ロール1,ロール2にはeffectiveusernameのユーザを割当て済み)
ログインの追加接続パラメータを設定(ユーザは管理者)roles=ロール1,ロール2,effectiveusername=ドメイン\ユーザ->OK
roles=ロール1,ロール2->OK(上記と同じ結果)
effectiveusername=ドメイン\ユーザ->NG。現在ログオン要求を処理できるログオンサーバはありません。(サーバ機上のSSMSから実行してもNG)
キューブ参照->ユーザ変更->その他のユーザ->NG。ドメイン\ユーザ現在ログオン要求を処理できるログオンサーバはありません。
同じコンピュータで、上記ユーザにWindowsログオンしてもらい、SSMSを実行すると問題ないのですが。ユーザによって、保持するロール(複数)が異なるので、ユーザ指定で確認したいです。何か根本的な問題があるのでしょうか。
-
すいませんが、EffectiveUserName が期待どおりに動作しない理由は分かりません。(Kerberos で認証できるようにSSASを構成しておく必要がある、というような記述を見かけましたのでそのあたりかもしれません。詳しくないのでお答えできません...)
そういえば、ログインよりましな方法として、runas コマンド(右クリックして 別のユーザーとして実行 )がありましたね。ここで ssms.exe を runas で動かす例が投稿されていました。http://social.msdn.microsoft.com/Forums/en-US/sqlanalysisservices/thread/d91f6071-a1b4-43a5-8dfe-06a20c483502 -
すいませんが、EffectiveUserName が期待どおりに動作しない理由は分かりません。(Kerberos で認証できるようにSSASを構成しておく必要がある、というような記述を見かけましたのでそのあたりかもしれません。詳しくないのでお答えできません...)
そういえば、ログインよりましな方法として、runas コマンド(右クリックして 別のユーザーとして実行 )がありましたね。ここで ssms.exe を runas で動かす例が投稿されていました。http://social.msdn.microsoft.com/Forums/en-US/sqlanalysisservices/thread/d91f6071-a1b4-43a5-8dfe-06a20c483502nagasakitさん、返信ありがとうございます。
EffectiveUserName はとりあえずあきらめました。
runas はパスワードが要るので、任意のユーザは無理なので、そのユーザと同じロールを持つ
ユーザを作る方法になりそうです。
他に思いついたのは、面倒ですが、任意のユーザが持っているロールを取得する仕組みを作って、
roles= 指定で実行、です。