none
SQL Server Management Studioでデータベースを検索できない RRS feed

  • 質問

  • SQL Server 2012 (Express) を使用しています。OSはWindows 8 です。

    データベースにアタッチするために SQL Server Management Studio Express のデータベースのオブジェクトエクスプローラでデータベースを右クリックしました。
    そこで、追加(A)ボタンをクリックして表示されるデータベース ファイルの検索の左のツリーを開こうとしていますが、ここで問題がありました。
    mdfファイルのあるフォルダの左に+ボタンが表示されません。このため、そのフォルダの下の階層にあるフォルダの中のmdfファイルを選択することが出来ません。
    この場合、設定の問題があるのか、インストールにトラブルが発生しているのか、それすら分からないのですが、どうしたらよいのでしょうか?

    ぜひ、解決方法をご教授ください。
    どうぞよろしくお願い致します。

    2013年2月24日 0:25

回答

  • > メッセージ 5133、レベル 16、状態 1、行 1
    > オペレーティング システム エラー 5(アクセスが拒否されました。)

    権限の問題のようですね。エラーメッセージを検索して見つけた以下のページが解決のための参考になるかもしれません。

    How to Deploy .mdf Files
    http://social.msdn.microsoft.com/Forums/en-US/sqlexpress/thread/afdf71b3-213f-473c-8047-32387dd8faf3/


    エラーが出たら、エラーメッセージで検索してみると、同じ問題で悩んだ人がいれば解決策は見つかることが多いです。検索して自力で解決できるようにするのもスキルアップになりますので、トライしてみてください。

    検索する際は、英語のサイトも含めて広く検索することをお勧めします。例えば、今回の場合は sql server 5133 operating system error 5 のように英語のみをキーワードに検索すると上記の他にも参考になりそうなページが多々見つかります。

    • 回答の候補に設定 佐伯玲 2013年3月1日 4:06
    • 回答としてマーク 佐伯玲 2013年3月7日 6:21
    2013年2月25日 11:20
  • 私も同様の状況で解決できずにおりましたが、

    対象となるmdfファイルに共有アクセス許可を与えてみたところ、SQL Server Mnagement Studio Expressから検索が可能となりました。

    +のでない展開できないフォルダー→右クリック→共有→特定のユーザー→ドロップダウンからEveryoneを選択して追加

    →Everyoneのアクセス許可のレベルを読み取り/書き込みにする。

    環境はWindows7 HP 64bit です。

    共有が目的ではなく、アクセス権を与えるのが目的です。

    フォルダーのプロパティーのセキュリティータブから、sqlserver側からのアクセス権を付加することでも可能です。



    • 回答の候補に設定 佐伯玲 2013年3月4日 1:03
    • 編集済み sam1212 2013年3月5日 18:39 再度
    • 回答としてマーク 佐伯玲 2013年3月7日 6:21
    2013年3月3日 7:52

すべての返信

  • > mdfファイルのあるフォルダの左に+ボタンが表示されません。

    Management Studio が壊れてなくて、データーベースへ接続できているのであれば、思い当たる原因としては、フォルダを間違えていて、そこに mdf ファイルがないということぐらいです。

    試しに「データーベースの検索」ダイアログで、「ファイルの種類(T)」を[すべてのファイル(*)」にしてみたらどうなるでしょうか?


    なお、DB をアタッチするには、アタッチする前に、SQL Server のサービスアカウントに、データ/ログファイル (.mdf, .ldf) があるフォルダに対するフルコントロール権限を与えることが必要ですので注意してください。詳しくは下記のページを見てください。

    DB のアタッチ
    http://surferonwww.info/BlogEngine/post/2010/09/13/ACL-setting-and-database-attaching-in-SQL-Server.aspx

    今回の問題はそれ以前の話なので、権限の設定は関係ないと思いますが。

    2013年2月24日 1:55
  • ご返信ありがとうございます。

    「データーベースの検索」ダイアログで、「ファイルの種類(T)」を[すべてのファイル(*)」にして
    みましたが、結果は同じでした。

    そこで、今度は、Sql Server Configuration Manager を開いてみると、
    ここに問題がありました。
    SQL SERVER のサービスにおいて、リモート プロシージャコールに失敗しました。[0x800706be]と表示されています。

    ここに問題があるのは当然と思いますが、この場合どうしたらよいのでしょうか?

    引き続きご教授お願いいたします。

    2013年2月24日 6:34
  • あまりいろいろなことを試すと発散するので、一つ一つ確認していった方がいいと思います。

    もう一度聞きますが「フォルダを間違えていて、そこに mdf ファイルがない」ということは絶対にないんですね?

    それが間違いないとして、問題は Management Studio を使ってアタッチできないということだけなんでしょうか? であれば、Transact-SQL でコマンドラインからアタッチできませんか?

    データベースのアタッチ
    http://technet.microsoft.com/ja-jp/library/ms190209.aspx

    2013年2月24日 9:25
  • いろいろ飛んで行ってしまって、申し訳ありません。

    >もう一度聞きますが「フォルダを間違えていて、そこに mdf ファイルがない」ということは絶対にないんですね?
    +マークのないフォルダの階層の下にフォルダが幾つかあり、その中にファイルがあります。
    >Transact-SQL でコマンドラインからアタッチできませんか?
    言葉が少なくて申し訳ありませんが、これも試してみました。しかし残念なことに、
    メッセージ 5133、レベル 16、状態 1、行 1
    オペレーティング システム エラー 5(アクセスが拒否されました。) により、ファイル "C:\xxxxx\Database\Data\Work\Work.mdf" のディレクトリ参照に失敗しました。
    との表示がでます。

    2013年2月24日 13:13
  • > メッセージ 5133、レベル 16、状態 1、行 1
    > オペレーティング システム エラー 5(アクセスが拒否されました。)

    権限の問題のようですね。エラーメッセージを検索して見つけた以下のページが解決のための参考になるかもしれません。

    How to Deploy .mdf Files
    http://social.msdn.microsoft.com/Forums/en-US/sqlexpress/thread/afdf71b3-213f-473c-8047-32387dd8faf3/


    エラーが出たら、エラーメッセージで検索してみると、同じ問題で悩んだ人がいれば解決策は見つかることが多いです。検索して自力で解決できるようにするのもスキルアップになりますので、トライしてみてください。

    検索する際は、英語のサイトも含めて広く検索することをお勧めします。例えば、今回の場合は sql server 5133 operating system error 5 のように英語のみをキーワードに検索すると上記の他にも参考になりそうなページが多々見つかります。

    • 回答の候補に設定 佐伯玲 2013年3月1日 4:06
    • 回答としてマーク 佐伯玲 2013年3月7日 6:21
    2013年2月25日 11:20
  • 私も同様の状況で解決できずにおりましたが、

    対象となるmdfファイルに共有アクセス許可を与えてみたところ、SQL Server Mnagement Studio Expressから検索が可能となりました。

    +のでない展開できないフォルダー→右クリック→共有→特定のユーザー→ドロップダウンからEveryoneを選択して追加

    →Everyoneのアクセス許可のレベルを読み取り/書き込みにする。

    環境はWindows7 HP 64bit です。

    共有が目的ではなく、アクセス権を与えるのが目的です。

    フォルダーのプロパティーのセキュリティータブから、sqlserver側からのアクセス権を付加することでも可能です。



    • 回答の候補に設定 佐伯玲 2013年3月4日 1:03
    • 編集済み sam1212 2013年3月5日 18:39 再度
    • 回答としてマーク 佐伯玲 2013年3月7日 6:21
    2013年3月3日 7:52
  • こんにちは、Pop Diva さん
    フォーラムオペレータの佐伯 玲 です。

    その後の状況はいかがでしょうか?

    参考になりそうな意見が寄せられていましたので私の方で「回答としてマーク」をさせていただきました。

    みなさんからの情報をご確認いただけた際にはその結果等追加の情報をご返信いただけましたらと思います。

    宜しくお願い致します。
    __________________________
    日本マイクロソフト株式会社 フォーラム オペレータ 佐伯 玲

    • 編集済み 佐伯玲 2013年3月7日 6:21 回答としてマークし、文言を変更しました
    2013年3月5日 7:49
  • ありがとうございます。

    ご指摘の方法でアタッチまでたどり着きました。

    2013年3月9日 19:35
  • > ご指摘の方法でアタッチまでたどり着きました。

    「ご指摘の方法」というのが具体的にどれか分かりませんが、everyone にアクセス権を与えるのはセキュリティ的に問題があると思います(文字通り「誰でも」アクセスできてしまう)。

    それで問題なければいいのですが、やはり自分が紹介した MSDN フォーラムのページで Microsoft (MSFT) の方が提案されているように、以下のいずれかにするのがお勧めです。

    (1) ユーザーインスタンスを利用する。
    (2) .mdf ファイルを Data ディレクトリに移す。

    開発環境なら、My Document 下のフォルダに .mdf ファイルを置けて、アタッチしなくてすむ (1) が便利です。運用環境では (2) を選ぶべきです。

    2013年3月10日 0:23