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

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

新規登録して質問してみよう
ただいま回答率
85.49%
SQL Server

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

Q&A

解決済

3回答

6513閲覧

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

jin_333

総合スコア7

SQL Server

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

0グッド

0クリップ

投稿2017/02/21 05:42

###前提・実現したいこと
共有サーバ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/フルコンの権限があります

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

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

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

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

投稿2017/06/13 09:46

Shimejinotani

総合スコア16

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jin_333

2017/06/14 07:30

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

0

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

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

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

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

投稿2017/02/21 07:46

alg

総合スコア2019

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jin_333

2017/02/21 09:06

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

0

ベストアンサー

アタッチする前に、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 06:01

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jin_333

2017/02/21 07:01

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

退会済みユーザー

2017/02/22 00:38

良案は見つかりましたか? もし見つかっていなければ、時間がもったいないので、増設用 HDD を手に入れて、DB サーバ B に物理的に接続し、それにサーバ A から .mdf, .ldf をコピーしてはいかが? それならアクセス権の問題は解決でき、アタッチして操作できると思います。 サーバ B はメモリ容量が心もとないとのことですが、それが問題なら質問者さんの案でも問題は可決できないはずですよ。
jin_333

2017/02/24 10:30

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問