web-dev-qa-db-ja.com

SQL Server Management Studio 2016を使用してデータベースをAmazon RDSにアタッチできません

AmazonのRDSサービスで実行されているSQL Serverのインスタンスにmdfファイルを添付しようとしています。 Microsoft SQL Server Management Studio 2016を使用して、次の手順に従います。

  1. Amazonインスタンスに接続した後、Databasesディレクトリを右クリックしてAttachを選択します。
  2. Attach Databases対話
  3. [追加]ボタンをクリックしてローカルの.mdfを選択します
  4. 次のエラーメッセージが表示されます。

このリクエストのデータを取得できませんでした。 (Microsoft.SqlServer.Management.Sdk.Sfc)

ヘルプが必要な場合は、次をクリックしてください http://go.Microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&LinkId=20476


追加情報:

Transact-SQLステートメントまたはバッチの実行中に例外が発生しました。 (Microsoft.SqlServer.ConnectionInfo)


EXECUTE権限は、オブジェクト 'xp_fixeddrives'、データベース 'mssqlsystemresource'、スキーマ 'sys'で拒否されました。 EXECUTE権限は、オブジェクト 'xp_fixeddrives'、データベース 'mssqlsystemresource'、スキーマ 'sys'で拒否されました。 EXECUTE権限は、オブジェクト 'xp_fixeddrives'、データベース 'mssqlsystemresource'、スキーマ 'sys'で拒否されました。 EXECUTE権限は、オブジェクト 'xp_fixeddrives'、データベース 'mssqlsystemresource'、スキーマ 'sys'で拒否されました。 (Microsoft SQL Server、エラー:229)

私はいくつかのフォーラムでこのエラーメッセージを見てきましたが、常にデータベースを変更しようとするとき(この時点では、ファイルブラウザを起動してmdfを見つけるだけだと思います)。私はそれを管理者として実行しようとしましたが、うまくいきませんでした。私はSQL Serverを使い始めたばかりで、Linux環境のほうがずっと慣れているので、明らかなことを除外するつもりはありません。任意の助けいただければ幸いです。

5
neanderslob

Amazon RDSでは、基盤となるファイルシステムに直接アクセスすることはできません。

MDF/LDFファイルを使用するのではなく、RDS SQL Serverに移行する既存のデータベースがある場合は、代わりに復元を行う必要があります。

Amazonによるデータベースの復元手順 は結構ですが、この質問をしているので、おそらく背景の概念について説明する必要があると思います。ファイルシステムにアクセスできないと言ったことを覚えていますか?まあ、Windowsでマップされたドライブがどのように機能するかなど、他のファイルシステムにアクセスできます。 S3はAmazonのシンプルなストレージサービスで、バケットを作成してファイルを置くことができます。次のことを行う必要があります。

  • S3バケットを作成する
  • データベースのバックアップ(MDF/LDFではない)をバケットに入れる
  • RDSインスタンスに、そのS3バケットから読み取るためのアクセス許可を付与します(ここに Amazonの指示 が入ります)。
  • Amazonのカスタムストアドプロシージャ rds_restore_database を使用してバックアップを復元する
3
Brent Ozar