• 締切済み

SQLServer(Analysis Service)のセキュリティについて

はじめまして。 SQL Server(Analysis Service)初心者ですが、よろしくお願いします。 現在、Analysis Service(SQL Serverのデータを使用)に接続し、データを表示するアプリケーションがあります。 今回、DBにログインするユーザーによって、表示データの制御が出来ないか考えています。 例えば、Analysis Service(キューブ)に都道府県毎のデータが登録されていた場合、東京のユーザーは東京のデータのみ。大阪のユーザーは大阪のデータのみ。 と言った感じで、SQLのWhere句の条件を各ユーザー毎に設定できれば と考えています。 ご存知の方、または答えらしき内容が出ているサイトを 知っている方がいましたら、教えていただけないでしょうか。 よろしくお願い致します。

みんなの回答

  • jamshid6
  • ベストアンサー率88% (591/669)
回答No.2

特にキューブの再作成などの設定は必要ありません。 私がロールコントロールも込みでAnalysis Serviceを設定するようになったのは2005からなのですが、そもそもサーバ管理者に含まれている人は一切の制限設定がきかないです(データベースエンジンのsysadminロールと同じ)。 それくらいしか思い当たるフシはないのですが。。

cha6464
質問者

お礼

jamshid6さん、 無事データを表示することが出来ました。 色々と情報ありがとうございます。

  • jamshid6
  • ベストアンサー率88% (591/669)
回答No.1

東京用・大阪用などのロールを作って、ディメンションデータのところでそれぞれ見せたいメンバー(都道府県)だけに絞り、それぞれのロールにユーザを割り当てればよいです。 それよりも柔軟にやる場合はMDXの知識が必要です。

cha6464
質問者

お礼

ありがとうございます。 キューブロールマネージャを利用し、ディメンジョンのルールを設定し 、キューブロールマネージャのロールテストでは設定した情報のみ表示されました。 (Analysys Service 2000を利用。) ロール内で設定するユーザーですが、Windowsのユーザーだと認識しています。 呼び出し元のアプリから、設定したユーザーでログインしデータを表示しましたが、制限がかからず全て表示されてしまいます。 キューブのロールを有効にするにあたり、何か設定などは必要なのでしょうか。 すみませんが、お気付きの点がございましたら、教えていただけないでしょうか。よろしくお願いします

関連するQ&A

  • SQLServerの負荷

    皆さん初めまして。 SQL Serverのことで少々困ったことが起きてまして、DB素人の私では良く分からずこちらに投稿させて頂きます。 現在、あるアプリケーションにて1分間に1回データを取得しSQL Serverにデータを渡して溜め込んでいくというシステムを動かしています。 毎分のデータはインターネットVPN経由で4ヶ所からデータを取得し、SQL Serverに渡して書き込むといった動きです。受け取るデータと言うのは、 int,int,datetime,datetime,int,numeric×150個 という様な構造をしています。このようなデータセットが4セットあり、これを毎分DBに書き込んでいます。当初は1セットのみだったのですが、途中で3セット増えて4セットになったのです。 困ったことと言うのは、4セットに増えて数週間してからSQL Serverと同居している他のアプリケーション(データを取得するアプリ)に影響が出始め、1分毎にデータを書き込む際、サーバの負荷が60%を超過し始めるようになったのです。タスクマネージャで確認したところ、負荷の原因はSQLサーバでした。 サーバスペックは以下の通り ・CPU:Pen4 3GHz ・Mem:2GB ・HDD:SCSI U320 32GB×3(RAID5) ・N/W:10/100/1000BASE-T×2 知りたいことと言うのは、SQLサーバの負荷が何が原因で発生していて、何とか下げることが出来ないかという相談です。 DBは私の専門外なので質問の仕方がまずい部分もあるかもしれません。足りない部分があれば、公開できる範囲で対応いたします。 皆様よろしくお知恵をお貸しください。

  • 別のSQLServerのバックアップを復元で

    2台のPCでSQL Serverのデータベースを別のコンピュータのSQL Serverで 復元しています。 別のWindows Server上のSQLServer2012から別のWindows Server上の SQLServer2012へバックアップファイル(yyyymmdd.bak)でリストアを しようとしております。 作業内容としては、データベース→DB選択→タスク→復元→データベースとし、 デバイスからバックアップファイルを指定しています。 データベースの復元は問題なく行え、DBへのアクセス、参照なども行えるのですが、 復元時に使用したユーザとは別のユーザのデータベースロールのアクセス権が消え てしまうのです。 SQLServerへの接続はでき、エクスプローラーには、データベースの表示はされる のですが、表示されたDBを選択をするとアクセスエラーとなります。 Windows認証で接続しているユーザです。 ユーザは同じですがドメインが異なる。 何故、消えてしまうのか。 消えないようにするにはどうしたらよいのか。 教えて下さい。 また、このような事象の説明があるサイトなどがありましたら教えて下さい。 つたない文面でわかりづらいとは思いますが、宜しくお願い致します。

  • sqliteでWHERE句に存在しないデータを削除

    PHPのsqliteで $sql=DELETE FROM TABLE WHERE C=データ $db->exec($sql) を使ったところ、WHERE句に存在しないデータがあると、エラーとなります。 sqliteで存在しなくてもエラーとならないような処理はどのようにしたらいいでしょうか?

  • Access VBAからcsvの出力について

    Access VBAからcsvの出力について Select * into csvファイル From テーブル名 Where ••• Where句なし、全件ではちゃんと出力できるのですが、 Where句ありだと0件になってしまいます。 Where句指定はできないのでしょうか? よい方法があれば教えてくださいm(._.)m 環境はフロントAccess ,DBはSQL server バッチでの出力も試みましたが、 Serverがあるフォルダにアクセス権限がないため、 断念しました。

  • SqlServerのスクリプト実行について

    Windows2003ServerにてSqlServer2005をバッチファイルから実行する時について質問させてください。 下記の「sql.bat」にて「script.sql」を実行した場合、「log.txt」に出力される内容は'222'をアップデートした結果「(x行処理されました)」のみが出力されますが、'000'や'111'を更新した結果も出力させたい場合、「script.sql」を3分割し、「sql.bat」で3ファイル実行するしかないのでしょうか。 「sql.bat」 sqlcmd -S SERVERNAME -d SCHEMANAME -i c:\script.sql -o c:\log.txt 「script.sql」 update tablename set data1 = 'aaa' where data1 = '000' update tablename set data1 = 'bbb' where data1 = '111' update tablename set data1 = 'ccc' where data1 = '222'

  • SQLServer2005のサービスが起動しない

    はじめまして。 皆さんにお知恵をお借りしたいことがありましたので投稿させていただきました。 まず、環境はWindowsVistaSP2(32bit版)で、使用しているDBはSQLServer2005です。今回の質問の内容は、このSQLServer2005がサービスの自動起動になっているにもかかわらず起動もせず、さらに手動でサービスの起動を試みても途中で失敗してしまい、私では手がおえない状態になってしまっています。 コマンドプロンプトでC:\Program Files\Microsoft SQL Server\MSSQL.2\MSSQL\Binn内の「sqlservr.exe」を実行しても沢山のエラーを吐くだけで、やはり起動はできません。SQLServerのプロパティの「次のアカウントでログイン」の項目は、「ビルトインアカウント」で「ネットワーク サービス」を指定しています。 実際に「sqlservr.exe」コマンドを打った場合のエラー内容は下記の通りです。何か複合的にエラーが起きているようには感じるのですが、実際どこをどう設定しなおせばいいのかわかりません。 なお、SQLEXPRESSはWindows起動と同時に自動的に開始します。 2009-08-06 13:07:47.50 Server Error: 17058, Severity: 16, State: 1. 2009-08-06 13:07:47.50 Server initerrlog: Could not open error log file 'C: \Program Files\Microsoft SQL Server\MSSQL.2\MSSQL\LOG\ERRORLOG'. Operating syste m error = 5(アクセスが拒否されました。). 2009-08-06 13:07:47.80 Server Error: 17058, Severity: 16, State: 1. 2009-08-06 13:07:47.80 Server initerrlog: Could not open error log file 'C: \Program Files\Microsoft SQL Server\MSSQL.2\MSSQL\LOG\ERRORLOG'. Operating syste m error = 5(アクセスが拒否されました。). 2009-08-06 13:07:48.10 Server Error: 17058, Severity: 16, State: 1. 2009-08-06 13:07:48.10 Server initerrlog: Could not open error log file 'C: \Program Files\Microsoft SQL Server\MSSQL.2\MSSQL\LOG\ERRORLOG'. Operating syste m error = 5(アクセスが拒否されました。). 2009-08-06 13:07:48.40 Server Error: 17058, Severity: 16, State: 1. 2009-08-06 13:07:48.40 Server initerrlog: Could not open error log file 'C: \Program Files\Microsoft SQL Server\MSSQL.2\MSSQL\LOG\ERRORLOG'. Operating syste m error = 5(アクセスが拒否されました。). 以上です。文字数制限に引っかかってしまったため、これ以降のエラー内容は書けませんでしたが、大体同じようなエラーが連なっています。長くなってしまいましたが、実際のエラー内容を確実にお伝えするために書かせていただきました。よろしくお願いいたします。

  • [SQLserver7.0]旧サーバ → 新サーバへの移動

    こんにちわぁ♪ Win2000とSQLサーバ7.0の構成でSQLサーバをインターネットDBを運用しています。 サーバ増強のため旧サーバから新サーバへデータを移動させたいのですが・・・ ファイルの移動みたいなことでいける!と聞いたのですが・・・ どのようにすれば一番楽ですか?? お願い!教えて!!

  • SQLServer2008のInstallの"サーバの構成"でエラーになり先に進めない

    WindowsServer2008(x64)の上にSQLServer2008を新規Installしようとしています. ".NET Framework"のInstallは正常に終了した.その後しSQLServer2008の"サーバの構成"の所で,"SQL Serverエージェントサービス"と"SQL Serverサービス"と"Analysis Servicesサービス"に"続行するには、SQL Serverエージェントに有効なアカウントおよびパスワードを指定してください"とエラーになり,その先に進めません. アカウントは,3つのサービスとも同じ"SQL2008\sqlsrv"と入れ,パスワードには,WindowsServer2008のAdministratorログイン時のパスワードを設定し,[次へ]をクリックした.各サービスに設定したアカウントとパスワードがダメらしいが,どうしてなのか解りません.アカウントは何でも良いと思いますが,パスワードが不正なのだと思うのですが…何が問題なのでしょうか? お解りの方はお教え下さい.宜しくお願いいたします.

  • SQLServer認証とWIndows認証

    お世話になります。 現在リモートのSQLServerにVB.NETのアプリからADO.NETで接続しようとしていますが、Windows認証の接続ができなく困っております。 sqlcmdコマンド使いSQLServer認証で確認すると以下の方法であっさりできました。 sqlcmd -S DBのホスト名 -U ユーザID -P パスワード -d DB名 しかし、Windows認証は「sqlcmd -S Bのホスト名 -E」を実行するとGuestユーザではログインできるのですが、他ユーザではログインできません。シクライアントPCとDBサーバ間の信頼関係ができていないのが原因のように思われますが、クライアント及びDBサーバのWindowsのログインユーザ名/パスワードは同じ、ワークグループも同じです。 また、SQLServerのManagement Studioを用いてユーザは作成してあります。 エラーは以下となります。 ----------------------------------------------------------- サーバーへの接続を確立しているときにエラーが発生しました。SQL Server 2005 に接続しているときときにこのエラーが発生した場合は、SQL Server の既定の設定がリモート接続を許可しないようになっていることがエラーの原因である可能性があります。 (provider: 名前付きパイプ プロバイダ, error: 40 - SQL Server への接続を開けませんでした) ----------------------------------------------------------- お手数お掛けしますが、宜しくお願いします。

  • SQLのWHEREで全てを質問する方法

    質問させてください。 phpとSQLでデータベースの中身を表示するプログラムを作成しています。 where no = 10 のように、where句を指定して個別にデータを表示するようにしているのですが、where句を残したまま全件表示をすることはできますでしょうか。 ためしに、 where no = * としたところ、エラーになりました。 何か良い方法がありましたらお教えください。

    • ベストアンサー
    • PHP