SQL Server 2012を構成してユーザーアカウントのファイルを復元および表示できるようにするにはどうすればよいですか?


10

コンピューターでSQL Server 2012インスタンスをサービスとして実行しており、サービスページによると、アカウント "NT Service \ MSSQLSERVER" としてログオンしています。ただし、そのアカウント名は、コンピューターの管理画面の[ローカルユーザーとグループ]領域を含め、どこにも表示されません。これは、以下のリンクにあるように、それはユーザーアカウントではなく、そのボックスにあるサービス名であるためです。 Microsoftは「アカウント」というラベルを付けてくれました。この時点で、私は多くの人々が混乱しているのを見ることができます。

私が達成しようとしているタスクは、SSMSダイアログ「Locate Backup File」を使用してファイルを復元することです。このダイアログは、「リモート」ジョブを実行しており、 SQLサーバーのセキュリティコンテキストは、エンドユーザーの混乱のもう1つの豊富な原因であり、この質問が解決に役立つことを願っています。

これまでのところ、自分のフォルダーの1つにあるバックアップ.mdf / .bakファイルを復元する場合は、そのフォルダーをEveryoneから読み取り可能に設定する必要があります。そうしないと、SQL Serverの "Locate Backup"でそこにアクセスできませんファイル」ウィンドウ。このアイデアは、ユーザーとは異なるユーザーアカウントと権限を持つサービスと対話するGUIを使用していることを発見しました。Microsoftの誰もあなたに明確に説明することすらしませんでした。Windowsシステム管理で長年の経験があっても、非常に混乱しています。 。

新しいSQLサーバーインスタンスをインストールした後、セキュリティをどのように設定するかを説明するSQL Serverのドキュメントページを見逃したことを願っています。

このようなフォーラムの投稿には、Microsoftのスタッフも「これは複雑です」と言っており、デナリでは「再び変更された」と述べています。SQL Server 2012でこれがどのように機能するのか、また、ユーザーに属するファイルを読み取るためのアクセス許可をSQLデータベースエンジンのセキュリティに追加する方法を教えてくださいSID


SQLが標準ダイアログを使用しないのは、SQLが読み取ることができないファイルを選択できないためです。セキュリティの構成方法について、SQLを実行するアカウントを変更することは可能ですか、それとも今のままにしたいですか?サービスアカウントの変更に問題がなければ、これは簡単に処理できます。名前付きアカウントを使用しているため、汎用のMSSQLSERVERアカウントを使用してテストすることはできません。
cfradenburg

1

開発中にSQL Serverを変更して通常のユーザーIDで実行するようにする場合、それが「ベストプラクティス」になる可能性があります。それが良いアイデアかどうか疑問に思っています。追加する必要のあるフォルダーに「NT Service \ MSSQLSERVER」を手動で追加するのが標準的な考えである場合、それは最も論理的な最小限の修正だと思いますよね?SQLサーバーのSSMS UIがこの非表示の「NT Server \ xxx」アカウントIDに接続するのが少し簡単になったことを願っています。
ウォーレンP

回答:


5

参考までに、「Denali」はSQL Server 2012です。「エンドユーザーの混乱」に関しては、SSMSに関してエンドユーザーが混乱しているかどうかについては、それほど心配していません。マイクロソフトは、通常のエンドユーザー向けではなく、データベース管理者やデータベースを管理する必要があるユーザー向けにこのツールを開発しました。したがって、提供されるツールとそれらがどのように機能するかについて学習曲線があります。SSMSでSQL Server 2005がリリースされて以来、ファイルダイアログボックスはSSMSでそのまま使用されています。これが、それ以降、データベースをバックアップ、復元、またはアタッチするためのT-SQLステートメントに固執している理由です。 。

SQL Serverとのconfigureファイルシステム権限にあなたはMSDNからの指示に従うことができますここで

サービスアカウントの処理方法はSQL Serverに付属していないか、SQL Serverが原因で発生しました。これは、オペレーティングシステムレベルの変更によるものです。Window Server 2008 R2では、サービスアカウントの周囲にセキュリティ層がもう少しあります。あなたが持っている利点は、デフォルト設定でインストールされた場合でも、サービスアカウントがドメイン上のリソースにより簡単にアクセスできることです。このリンクは、SQL Server 2012でサービスアカウントの権限がどのように処理されるかをかなり詳細に示しています。リンクからの抜粋は、SQL Server 2012でデフォルトで使用される仮想アカウントの下にあります。 Windowsでのサービスアカウントの概念についての議論は、こちら。これはWindow Server 2008 R2からのものですが、Window Server 2012、およびおそらくWindow Server 2012 R2についても当てはまると思います。

バーチャルアカウント

Windows Server 2008 R2およびWindows 7の仮想アカウントは、サービスの管理を簡略化する次の機能を提供する管理されたローカルアカウントです。仮想アカウントは自動管理され、仮想アカウントはドメイン環境でネットワークにアクセスできます。Windows Server 2008 R2またはWindows 7でのSQL Serverのセットアップ中にサービスアカウントにデフォルト値が使用される場合、インスタンス名をサービス名として使用する仮想アカウントが、NT SERVICE \の形式で使用されます。仮想アカウントとして実行されるサービスは、\ $形式のコンピューターアカウントの資格情報を使用してネットワークリソースにアクセスします。SQL Serverを起動する仮想アカウントを指定するときは、パスワードを空白のままにします。仮想アカウントがサービスプリンシパル名(SPN)の登録に失敗した場合は、SPNを手動で登録します。SPNを手動で登録する方法の詳細については、「Kerberos接続のサービスプリンシパル名を登録する」を参照してください。メモメモ仮想アカウントはクラスターの各ノードで同じSIDを持たないため、SQL Serverフェールオーバークラスターインスタンスには仮想アカウントを使用できません。

次の表に、仮想アカウント名の例を示します。

データベースエンジンサービスのデフォルトインスタンス:NT SERVICE \ MSSQLSERVER PAYROLLという名前のデータベースエンジンサービスの名前付きインスタンス:SQLサーバーのデフォルトインスタンス上のNT SERVICE \ MSSQL $ PAYROLL SQL Serverエージェントサービス:NT SERVICE \ SQLSERVERAGENT SQLサーバーエージェントサービスPAYROLLという名前のSQL Serverのインスタンス:NT SERVICE \ SQLAGENT $ PAYROLL


3
エンドユーザーとは、何十人ものカテゴリのいずれかを意味します。さまざまな分野で非常に専門的で技術的に有能な人もいますが、DBAではないかもしれません。個人的には、DBAでさえ、このツールのUIを改善する必要があると思うでしょう。強力なサードパーティツール市場は、SSMSは無料ですが、価格に見合うだけの価値があることを示すもう1つの指標です。
Warren P

1
2017年にはそれは良くなりませんでした。したがって、簡単な答えは、「UIの設計が不十分であっても、改善されることはなく、動作を学ぶことです」です。
Warren P

2

別のフォルダー内のファイルを表示/アクセスするNT SERVICE\MSSQLSERVERには、そのフォルダーに対する権限を付与します。スクリーンショットと関連する手順については、SSMSのどのディレクトリにも表示されない.bakファイルに投稿された私の回答を参照してください。(通常のユーザー/グループ権限をフォルダに追加するのとは少し異なります。)

お役に立てば幸いです。


1

実際、SSMSを介して復元を行おうとし、Windows認証(!)を介してログインしている場合、そのアクセス許可を必要とするのは(「誰も」ではなく)あなたのWindowsアカウントです-SQL Serverサービスではありませんアカウント。混乱が解消されることを願っています。サービスアカウントには他のニーズがあります。たとえば、SQL認証済みアカウントを介してログインした場合、オペレーティングシステムはどの権限を要求する必要がありますか?-これはSQL Serverのサービスアカウントになりますケースのみ!これはSQL Server 7.0以降、おそらくそれ以前でも変更されていません:)


1
資格情報を忘れないでください。
Remus Rusanu 2013

混乱が解消されるかわかりません... WA経由でログオンしている場合、SQL Serverアカウントには復元権限が必要ですが(SQL Serverに関する限り)、SQL Serverサービスアカウントには読み取り権限が必要ですファイルシステムでファイルを開く.bak(明示的に許可されていない限り、ユーザーディレクトリにある場合は通常、ファイルは開かれません)。
Bruno
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.