SQL データベース ファイルを古いファイルに置き換えないようにする

SQL データベース ファイルを古いファイルに置き換えないようにする

アプリケーションで使用するデータベースがあります。

私が防止したい操作は、SQL Server を停止してデータベース ファイルを別の場所に移動し、SQL Server を起動していくつかの操作を行い、SQL Server サービスを停止してデータベース ファイルを古いファイルに置き換え、SQL Server を起動することです。SQL Server がエラーを出してデータベースを開かないようにしたいのです。

SQL Server 2012 を使用してこの状況を実現するにはどうすればよいですか?

答え1

質問の意味が理解できれば、透過的データ暗号化のようなものを探しているように聞こえます。これは、ユーザーがデータベースをデタッチして自分のサーバーに接続し、変更を加えて元のサーバーに再接続するのを防ぐためです。透過的データ暗号化では、ユーザーが証明書と秘密鍵を持っている必要があります。添付するまたは復元するデータベースを別のサーバーに移動します。

これにはエンタープライズが必要です(または開発者版または評価版。どちらも本番環境での使用にはライセンスされていません)、ユーザーがサーバーへの管理者アクセス権を持っている場合、100% 安全であるとは思えません。たとえば、ユーザーが証明書をエクスポートするアクセス権を持たないようにする必要があります。

残念ながら、joeqwerty さんのおっしゃるとおり、ユーザーにサーバーへの管理者アクセス権や SQL への SA アクセス権を与えず、SQL ディレクトリなどへのユーザーの NTFS 権限をブロックする必要があります。

関連情報