ワークグループ環境の SQL Server の各機能に対しての認証の方法まとめ

ドメイン環境であれば認証はある程度 Active Directory に任せられるので楽なのですが、ワークグループ環境では各サービスごとに認証が異なっていたりなど、ハマリどころが多いです。とりあえずわかる範囲でまとめていますが(自分用)、もしかしたら間違っているところもあるかもしれませんので参考程度に見てください。

■環境

  • ローカルPC (ワークグループ or ドメイン環境)
  • サーバーPC (SQL Server インストール, ワークグループ環境)

■接続メモ

 

【SQL Server データベース】

  • Windows 認証と SQL Server 認証を選択可
  • SQL Server 認証の場合、接続文字列にユーザー名とパスワードがあればそのほかの認証は必要なし。事前に SQL Server のログインにユーザーを登録する必要はある。
  • Windows 認証の場合はローカルPCとサーバーPCに同じユーザー名、パスワードのアカウントが必要
  • データベースアクセス時に認証ダイアログが表示される場合があり、サーバーのアカウントさえ入力できれば接続できるようにも思えるが、ローカルにあるアカウントも同時にチェックしているため、やはりローカルとサーバーに同じアカウントが必要である。
  • サーバーに作成したユーザーアカウントを SQL Server のログインに登録する必要あり。また、登録したアカウントに対してデータベース、テーブルなどそれぞれアクセスできる権限を設定する必要あり。

 

【Analysis Services】

  • Windows 認証一択
  • ローカルPCとサーバーPCに同じユーザー名、パスワードのアカウントが必要
  • キューブアクセス時に認証ダイアログが表示される場合があり、サーバーのアカウントさえ入力できれば接続できるようにも思えるが、ローカルにあるアカウントも同時にチェックしているため、やはりローカルとサーバーに同じアカウントが必要である。
  • キューブに接続できるユーザーを指定したロールを作成する必要あり。

 

【レポート マネージャー】

  • Windows 認証一択
  • レポート マネージャーに接続する際に認証ダイアログが表示されるが、サーバーに登録されているユーザーを入力すれば認証可能。ローカルに同じユーザーを作る必要はない。これはレポートマネージャーが Web システムであり、実行するプログラムの実態がサーバーにあるため。
  • レポートビルダーからレポートサーバーにアクセスする場合も、サーバーに登録されているアカウントを指定すれば認証可能
  • レポート マネージャー、レポートにアクセスできるユーザーは、レポートマネージャーでフォルダ、ファイル単位に設定

 

足りない項目は後で追加するかもしれません。また何か違う内容、または追記すべき項目があればコメントください。

]]>

レポート ビルダーでレポート マネージャーに配置してあるデータ ソースを参照したときにデータ ソース クエリを参照できないエラーの対処法

はまったので簡単にメモします。

【環境】

■クライアントPC

  • レポート ビルダー 3.0

■サーバーPC

  • Reporting Services (SQL Server 2008 R2)
  • 参照するテーブル、またはキューブ
  • 上記のデータ ソース配置

 

【原因と対処法】

レポート ビルダーを使うクライアントからサーバーにあるデータ ソースを参照し、クエリデザインを開こうとしたときに認証エラーになる場合があります。

【エラー例】

  • ログオン失敗: ユーザー名を認識できないか、またはパスワードが間違っています。
  • 対象のコンピュータによって拒否されたため、接続できませんでした。

逆にサーバー内で直接レポート ビルダーで編集するときや、レポート マネージャーから(サーバー、クライアントからアクセスどちらでも)データ ソースの接続テストを行った場合には問題ない場合があります。

これのよくある原因としては、データソースのホスト名指定に「localhost」を指定している場合に発生します。

サーバー上で編集している場合は自分自身(localhost)にデータソースが存在するのでエラーが発生しません。クライアントからレポート マネージャーを開いてデータソースの接続テストを行った場合にも、実際にプロセスが動いているのはサーバーなのでこちらもエラーになりません。

レポート ビルダーからサーバーのデータソースを参照した場合は、データソース自体はサーバーにあるのですが、そのデータソースを使って実行するプロセスはクライアントになるため、localhost はクライアントPCを指すことになり、データ ソース(テーブルなど)が存在しないため、エラーになることがあります。

ですので、レポート マネージャーに配置するデータ ソースが参照するホスト名は localhost にはせず、必ずサーバー名、または IP アドレスを明示的に指定する必要があります。

]]>

[Reporting Services] レポート マネージャーに管理者としてアクセスする方法

Windows Vista や Windows Server 2008 など、UAC の構成がある環境に Reporting Services をインストールした場合、Administrators の権限のあるユーザーでレポート マネージャーにアクセスしても、権限がないとエラーが表示されることがあります。原因はもちろん UAC によるものです。

管理者権限でレポート マネージャーにアクセスするひとつの方法としては、Internet Explorer を管理者権限で実行することです。Internet Explorer の実行ファイルを右クリックして「管理者として実行」を選択すればレポート マネージャーに管理者としてアクセスできます。(管理者権限のままほかにサイトに移動するのは危険なので注意してください)

しかし、毎回管理者権限で実行するのが面倒であれば以下の設定をすることにより、管理者権限で Internet Explorer を実行しなくてもレポート マネージャーに管理者としてアクセスできます。

  1. Internet Explorer を管理者権限で実行する。
  2. レポート マネージャーのサイトにアクセスする。Reporting Services インストール環境で操作する場合、localhost ではなく、サーバー名、または IP アドレスを指定してください。
  3. 「ツール」「インターネットオプション」「セキュリティ」「信頼済みサイト」を選択して、レポート マネージャーのサイトを登録してください。(localhost だとすでにイントラネットに含まれているので追加できません)
  4. レポート マネージャーのホームから「フォルダーの設定」「セキュリティ」「新しいロールの割り当て」を選択し、アクセスするユーザー名を「<domain>/<user>」の形式で入力し、「コンテンツ マネージャー」のロールを与えて追加します。
  5. レポート マネージャーから画面右上の「サイトの設定」を選択し、「セキュリティ」「新しいロールの割り当て」を選択、ユーザーに「<domain>/<user>」を入力して「システム管理者」のロールを割り当てて追加します。
  6. Internet Explorer を閉じ、今度は管理者権限で起動せずにアクセスし、管理者としてレポート マネージャーにアクセスできるか確認してください。(場合によってはページにアクセスする際認証を求められることがあります)
]]>