AdventureWorks 2012データベースをSQL Server 2012にインストールしようとしています。このリンクからmdfファイルを取得しました- http://msftdbprodsamples.codeplex.com/releases/view/93587
ダウンロードしたファイルの名前は次のとおりです-AdventureWorks2012_Database.Zip
私はこれをすべてWindows 7 64ビットで実行しています。
以下のエラーが表示されます。
Attach database failed for Server 'SuperPC\SQL2012'. (Microsoft.SqlServer.Smo)
For help, click: http://go.Microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=11.0.2100.60+((SQL11_RTM).120210-1917+)&EvtSrc=Microsoft.SqlServer.Management.Smo.ExceptionTemplates.FailedOperationExceptionText&EvtID=Attach+database+Server&LinkId=20476
ADDITIONAL INFORMATION:
An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)
Unable to open the physical file "C:\Databases\AdventureWorks2012_Data.mdf". Operating system error 5: "5(Access is denied.)". (Microsoft SQL Server, Error: 5120)
For help, click: http://go.Microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&ProdVer=11.00.2100&EvtSrc=MSSQLServer&EvtID=5120&LinkId=20476
問題の理由-データベースのmdfファイルとldfファイルを「公式」SQLサーバーのインストールフォルダー外のディレクトリに配置する。
解決策-
http://tryingmicrosoft.com/error-while-attaching-a-database-to-sql-server-2008-r2/
.mdfファイルとldfファイルをこのディレクトリに貼り付けます-C:\ Program Files\Microsoft SQL Server\MSSQL11.SS2012\MSSQL\DATA
問題を解決しなかった解決策-
1-圧縮されたファイルのブロックを解除します。また、mdfおよびldfファイルがブロックされていないことを確認しました。 (手順-Zipファイルを右クリックして[プロパティ]> [ブロックを解除])
2-管理者としてSSMS 2012を実行します。
3-フォームのSQLクエリを実行します-
CREATE DATABASE MyAdventureWorks
ON (FILENAME = 'C:\MySQLServer\AdventureWorks_Data.mdf'),
(FILENAME = 'C:\MySQLServer\AdventureWorks_Log.ldf')
FOR ATTACH;
オプション
1。.mdfおよび.ldfをSQLServerインストールディレクトリ\ Data \フォルダーに移動します(例:C:\ Program Files(x86)\ Microsoft SQL Server\MSSQL10 .SQLEXPRESS\MSSQL\DATA)
2。SQL Server Management Studioを管理者として実行
3。アクセスする必要のあるディレクトリに、SQL Serverユーザーの権限を追加します。どのユーザーが正しいのかはわかりませんでしたが、「[PCNAME]\Users」アカウントにフォルダーへのフルアクセスを与えることで、正常に機能するようになりました。
ステップ
フォルダーを右クリックします。プロパティを選択します。 「セキュリティ」タブを選択します。 「編集」をクリックします。 「ユーザー([PCNAME]\Users)」を選択します。たとえば、PCの名前がmycompの場合、これは「Users(mycomp\Users)」になります。
[ユーザーの権限]の下の[フルコントロール]の横にある[許可]チェックボックスをクリックします。
オプション1および2の詳細については、 here を参照してください。
CREATE FILEでオペレーティングシステムエラー5が発生しました(このエラーのテキストを取得できませんでした。理由:15105)
許可を変更しましたが、それはうまくいきました:セキュリティ->詳細。 'NT Service\MSSQLSERVER'を追加し、フルアクセス継承を無効にするを付与して、トラブルシューティングを容易にするために自分で追加します。 .mdfファイルと.ldfファイルの両方でそれを行います。
.mdf
ファイルを移動する必要はありません。データベースがあるフォルダーを右クリックして、セキュリティ権限を変更します。 認証済みユーザーフルコントロールを与えました。次に、以下のTSQLスクリプトを実行して、データベースをアタッチしました。
CREATE DATABASE MyAdventureWorks
ON (FILENAME = 'C:\Adventureworks\AdventureWorks2012_Data.mdf'),
(FILENAME = 'C:\Adventureworks\AdventureWorks2012_Log.ldf')
FOR ATTACH;
ご覧のとおり、データベースファイルはAdventureworks
というフォルダーにあります。
エラー5-アクセスが拒否されました-DOSの昔からのものです。基本的に、これはACL-アクセス制御リストエラーです。
SQL SERVER SERVICEアカウントがアクセスできる限り、好きな場所にデータベースを置くことができます!
ログインしているユーザーは関係ありません。ディレクトリとファイルにアクセスする必要があるのはサービスアカウントです。
管理者としてSSMSを実行する必要はありません。私はこのステップなしで常にデータベースを接続しました。
添付して初めてデータベースを作成する場合は、ログファイルを削除するだけで済みます。
添付してデータベースを作成しようとしていたが、同様のスクリーンショットを取得し続けた
以下の記事を見つけてログを削除しなければならなかったのは明らかでしたが、MSは新しいデータベースに対して自分で表示しないことを提案しませんでした。非常に悪い経験で、SQLサーバーライセンス製品に似ているかどうかはわかりません。
http://exacthelp.blogspot.in/2012/12/unable-to-open-physical-file-operating.html
AdventureWorks2012データベースをローカルのMSSQLデータベースに接続する手順:
解決策1: WindowsのC:\ドライブに十分なスペースがあり、C:\ドライブにデータベースを作成する場合
2.オブジェクトエクスプローラで「データベース」を右クリックし、「添付」を選択します
3. [データベースのアタッチ]ダイアログボックスで、アタッチするデータベースの[追加]ボタンをクリックします:フィールド。
5.データベース「AdventureWorks2012」がSQL Severに作成されます。
解決策2: WindowsのC:\ドライブに十分なスペースがない場合
1.サーバー名XXX\SQLEXPRESSおよび認証-「Windows認証」を選択して、ローカルサーバーに接続します
2.オブジェクトエクスプローラで「データベース」を右クリックし、「添付」を選択します
3. [データベースのアタッチ]ダイアログボックスで、アタッチするデータベースの[追加]ボタンをクリックします:フィールド。
MDF F:\ AdventureWorks2012_Database\AdventureWorks2012_Data.mdfのファイルの場所に移動し、[データベースの接続]ダイアログボックスの下部にある[OK]をクリックします。
これにより、次のエラーメッセージが生成されます。「データベースの接続中にエラーが発生しました。詳細については、[メッセージ]列のハイパーリンクをクリックしてください。
ソリューションは次のとおりです。
i)AdventureWorks2012_Dataフォルダーを右クリックして、[プロパティ]を選択します。
ii)[セキュリティ]タブをクリックします
iii)[グループ名またはユーザー名:]セクションで[ユーザー(xxx\Users)]を選択します
iv)[編集]ボタンをクリックします
v)ポップアップの[グループ名またはユーザー名:]で[ユーザー(xxx\Users)]を選択します。
vi)[ユーザーのアクセス許可]セクションの[フルコントロール]チェックボックスをオンにします。
vii)[OK]と[OK]をクリックします。
ここで、SQLseversの[データベースのアタッチ]画面に戻り、アタッチするデータベースの[追加]ボタンをクリックします:フィールド。
MDFファイルの場所、たとえばF:\ AdventureWorks2012_Database\AdventureWorks2012_Data.mdfに移動し、[データベースのアタッチ]ダイアログボックスの下部にある[OK]をクリックします。
これで、データベース「AdventureWorks2012」がSQL Severに作成されます。
これは古い質問であることに気づきましたが、私にとっては、データベースをアタッチするために実際には2つの要件がありました外部デフォルトのフォルダー:
NT SERVICE\MSSQL$INSTANCENAME
フォルダへのフルアクセスプロセス(SSMS)が昇格されている場合、#1は必要ないと思います。
以前の提案をありがとう。データベースファイルをSQLサーバーディレクトリに移動したり、データベースログファイルを削除したりする必要はありません。代わりに、認証済みユーザーの.MDFファイルと.LDFファイルの両方にフルコントロールのアクセス許可を与えるだけです。そうすることで、AdventureWorks2012とAdventureWorksLT2012の両方のサンプルデータベースをSQL Server Management Studio(SSMS)に正常にアタッチします。
このウェブサイトからアドベンチャー作品をダウンロードすることでこの問題を解決しました
http://msftdbprodsamples.codeplex.com/downloads/get/723031
Adventure Works Zipフォルダーをダウンロードする場合、このファイルには.mdfファイルと.ldfファイルの両方が含まれているため、AdventureWorks2012_Data.Zipなどのファイルに_dataが追加されていることを確認してください。
ダウンロード後、コンピューターのこのURLにフォルダーの内容を抽出しますC:\ Program Files\Microsoft SQL Server\MSSQL11。***\MSSQL\DATA。 SQlサーバーで、オブジェクトエクスプローラーに移動し、データベースを右クリックしてデータベースをアタッチします。 [添付]ダイアログボックスで、[Adve ********。mdf]を選択する必要があります。ここからは問題ないはずです。
これがお役に立てば幸いです。
ASP.NET MVSのカスタム設定で新しいデータベースを作成しようとしたときに同じ問題が発生し、それを解決するために数時間を失いました。最後に、私の解決策は、App_Dataフォルダーのフォルダーオプション/セキュリティを取得することでした。次に、「認証済みユーザー」アカウントを追加して、彼にフルコントロールを与えました。そして、それがすべてでした。私のアプリケーションはうまく動作します..
現在のユーザーをセキュリティタブに追加するだけで、添付クエリを完全に制御して再実行できます
サーバーのファイル/フォルダーにアクセスできる場合は、この解決策を試すことができます:
Windows Server 2008 R2上のSQL Server 2012
実際には非常に簡単です。ファイルの名前を変更するだけです。移動する必要はありません。何でも実行する権限を追加します...
注:Windows 7 Pro、SQL 2012
DiskManager.msc
を使用した後、machine_name\SERVICE
ファイルと.mdf
ファイルの両方に.ldf
をフルコントロールで追加する必要がありました。
私のラップトップはBorrisです。
ドライブ文字を切り替えるとアクセス許可がリセットされる理由はわかりませんが、Windowsではリセットされました ここに画像の説明を入力してください