web-dev-qa-db-ja.com

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

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

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

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

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

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

10
Warren P

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

SQL Serverでファイルシステムのアクセス許可を構成するには、MSDN here の指示に従ってください。

サービスアカウントの処理方法がSQL Serverに付属していないか、SQL Serverが原因で発生したのは、オペレーティングシステムレベルの変更が原因でした。 Window Server 2008 R2では、サービスアカウントの周りにセキュリティ層がもう少しあります。あなたが持っている利点は、デフォルト設定でインストールされている場合でも、サービスアカウントがドメイン上のリソースにより簡単にアクセスできることです。この link は、SQL Server 2012でサービスアカウントの権限がどのように処理されるかをかなり詳細に示しています。リンクからの抜粋は、SQL Server 2012でデフォルトで使用される仮想アカウントの下にあります。リンクも提供されていますWindowsでのサービスアカウントの概念の詳細については、記事 here を参照してください。これは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 Serverの既定のインスタンス上のNT SERVICE\MSSQL $ PAYROLL SQL Serverエージェントサービス:NT SERVICE\SQLSERVERAGENT SQL ServerエージェントサービスPAYROLLという名前のSQL Serverのインスタンス:NT SERVICE\SQLAGENT $ PAYROLL

5
user507

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

お役に立てば幸いです。

2
AdamsTips

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

1
Andreas Wolter