質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.34%

  • SQL Server

    620questions

    SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

SQLServerManagementStudioを使って、ネットワーク越しにあるMDL、LDFをアタッチする

解決済

回答 3

投稿

  • 評価
  • クリップ 0
  • VIEW 1,251

jin_333

score 1

前提・実現したいこと

共有サーバAにMDF,LDFファイルがあります。これらのファイルを、ネットワークで繋がっているDBサーバB上のSQLServerManagementStudioを使用して同サーバにアタッチしたいと思います。

他に適切な方法やコマンドがあればご教授願います。

アタッチしたDBからは必要なデータを参照して既存DBに反映するのみで、作業終了後でタッチする予定です。

発生している問題・エラーメッセージ

SQLServerManagementStudioのアタッチダイアログではネットワーク上のドライブは表示されませんし、直接’\\serverA\C$\X_DB.mdf’の入力をしてもアタッチ可能になりません。
サーバAにはSQLServerManagementStudioはインストールされていません。
MDF,LDFはサイズが大きい上に、サーバBのメモリ容量が心もとなくファイルをサーバBにコピーしてアタッチは出来ません。

試したこと

USE [master]

dbcc traceon (1807)
go

create database [X_DB] on primary
(name = N'X_DB', filename = N'\\serverA\C$\X_DB.mdf')
LOG on
(name = N'X_DB_LOG', filename = N'\\serverA\C$\X_DB_log.ldf')
for attach
go

エラーメッセージ

DBCC の実行が完了しました。DBCC がエラー メッセージを出力した場合は、システム管理者に相談してください。
メッセージ 5133、レベル 16、状態 1、行 2
オペレーティング システム エラー 5(アクセスが拒否されました。) により、ファイル "\\serverA\C$\X_DB.mdf" のディレクトリ参照に失敗しました。

補足情報(言語/FW/ツール等のバージョンなど)

・SQLServer2008
・serverA上にあるc:\およびMDF,LDFファイルにはEveryone/フルコンの権限があります

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 3

checkベストアンサー

+1

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

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

SQL Server のある PC とデータ/ログファイルのある PC が異なる場合、権限の問題で無理ではないかと思います。(自分が知らないだけで、ネットワーククレデンシャルを与える方法などがあるかもしれないということは否定しきれませんが)

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/02/21 16:01

    回答いただきありがとうございます。
    参考URLをじっくり読み込みトライします。
    でも、おっしゃるように物理的に場所が違うとムリなような気がしてきました。
    いろいろ試してみます。

    キャンセル

  • 2017/02/22 09:38

    良案は見つかりましたか? もし見つかっていなければ、時間がもったいないので、増設用 HDD を手に入れて、DB サーバ B に物理的に接続し、それにサーバ A から .mdf, .ldf をコピーしてはいかが?

    それならアクセス権の問題は解決でき、アタッチして操作できると思います。

    サーバ B はメモリ容量が心もとないとのことですが、それが問題なら質問者さんの案でも問題は可決できないはずですよ。

    キャンセル

  • 2017/02/24 19:30

    その通りですね。代案を検討します。
    いろいろありがとうございました

    キャンセル

+1

・serverA上にあるc:\およびMDF,LDFファイルにはEveryone/フルコンの権限があります

とのことですが、
対象となるファイルやフォルダのNTFSアクセス許可と共有のアクセス許可、両方とも許可されているでしょうか?
両方が許可されていなければ、アクセスはできません。

そしてここからは推測です。
Everyoneにフルコントロールを与えていたとしても認証ダイアログが要求されてしまい、
SQL Server のサービスアカウントはUIを持たないため結果としてアクセスが拒否されている
のかもしれません。
(ちょっと正確性を欠いているような気はします……)
Everyoneに権限を与えるだけではなく、ANONYMOUS LOGONにも権限を与えてみると、どうなるでしょうか。
もちろんNTFSと共有の両方です。

参考:
Windows Server 2008 のファイル共有への 匿名アクセス を有効にする方法 | Mimori's Algorithms Press

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/02/21 18:06

    ご回答ありがとうございます。
    確認しましたが、NTFSアクセス許可と共有のアクセス許可、両方とも許可しています。
    さらにANONYMOUS LOGONにも権限を与えてみましたが駄目なようです。
    もう少しいろいろ試してみます。

    キャンセル

+1

このようなものを使う手は考えられますか?

◆ 2つのDB間のデータの同期をとる
http://www.red-gate.com/products/sql-development/sql-data-compare/

既に国内事例も多数との事です。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/06/14 16:30

    便利なものがあるのですね。検討します。
    情報をいただきありがとうございます。
    コメントが遅くなり申し訳ありませんでした。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.34%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る

  • SQL Server

    620questions

    SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。