ワークグループ環境の 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 アドレスを明示的に指定する必要があります。


ホスト名にアンダーバー(_)を含むサイトに Internet Explorer でアクセスすると Cookie が保存されない

完全に盲点な仕様でした。ASP.NET で Web サイトを構築していたのですが、なぜかホスト名でアクセスするとセッションに保存していたデータが消失してしまうという謎の原因が発生し、解決の糸口が見つからなかったので MSDN フォーラムで質問していました。

ホスト名にアンダーバーをいれた場合、Cookie が保存されないのは IE だけの仕様なんですね(IE 6~9 で確認)。ほかのブラウザでは問題なく Cookie は保存されるようでした。

検索してみると結構出てくるみたいです。

ひさびさに大ハマリしてしまいました orz


ComicStudio でレイヤーを別のページにコピーする

【環境】

  • ComicStudio Pro 4.0

【手順】

  1. コピー元レイヤーのあるページの編集画面で「Ctrl」+「A」で全選択
  2. コピーしたいレイヤーをレイヤーウインドウから選択。(複数コピーする場合は「Ctrl」キー押しながらクリック)
  3. 「Ctrl」+「C」でコピー
  4. コピー先のページに移動
  5. 編集画面上で「Ctrl」+「V」で完了

最初のコピー元のページで全選択をするところがミソ。これをしないとコピーできません。


ひとつのストレージに作成できるプライマリパーティションは4つまで

今まで知らなかったんですが、ひとつのストレージに作成できるプライマリパーティションは4つまでなんですね。4つのうち一つはシステムで使用されるので実際に作成できるのは3つまで。例えば「C, D, E」ドライブのように。

それ以上作成したい場合は、他のストレージを追加するか拡張パーティションを使用するみたいです。


HTML5でファイルを複数選択してアップロードする方法

HTML5 では input タグの属性に「multiple="multiple"」を追加するだけで、ファイル選択時に複数のファイルを選択できるようになります。

<input id="fileUpload"  name="fileUpload" type="file" multiple="multiple" />

HTML 4.01 の時は、複数のファイルをアップロードするのに、対応する数の input タグを配置しなければいけませんでした。

ただし、multiple 属性は Web ブラウザが対応していないと効果がありません。今のところ Google Chrome, Safari が対応されているようです。

 

ちなみに、ASP.NET で multiple 属性による複数ファイルがアップロードされた場合、Request.Files に選択されたファイルの数だけ HttpFileCollectionBase が格納されるようです。