web-dev-qa-db-ja.com

データベースバックアップと証明書バックアップのファイル権限

データベースをバックアップし、データベースマスターキーをまったく同じフォルダーにバックアップしました。すべてのユーザーがこのフォルダにフルアクセスできますが、データベースのバックアップのみがフォルダの権限を継承しますが、キーのバックアップは継承しません。

マスターキーバックアップファイルのセキュリティを表示するには、管理者権限を使用する必要があります。

なぜこれがそうなのかを誰かが示唆できますか?どちらもT-SQLのバックアップコマンドを介して同じアカウントで作成されました。

1
beehive

を実行するときはいつでもBACKUP CERTIFICATEまたはBACKUP MASTER KEY、SQL Serverは Access Control List(ACL) を変更して、作成された各ファイルシステムファイルを変更します。1 そのため、次のWindowsプリンシパル以外の誰もファイルにアクセスできません。

  1. OWNER_RIGHTS にはフルコントロールがあります。 OWNER_RIGHTSは、既知のセキュリティ識別子S-1-3-4オブジェクトの現在の所有者を表します。このSIDを含むアクセス制御エントリがオブジェクトに適用されると、システムはオブジェクト所有者の暗黙的なREAD_CONTROLおよびWRITE_DAC権限を無視します。
  2. ローカルの「管理者」グループのメンバーはフルコントロールを持っています
  3. SQL Serverの実行に使用される 仮想アカウントまたは管理されたサービスアカウント にはフルコントロールがあります。これは、SQL Server構成マネージャーで構成するSQL Serverサービスアカウントではないことに注意してください。デフォルトのSQL Serverインスタンスの場合、アカウントは通常NT SERVICE\MSSQLSERVER。名前付きインスタンスの場合、アカウントの名前はNT SERVICE\MSSQL$INSTANCE_NAME
  4. 他のプリンシパルによるアクセスを防ぐために、オブジェクトのACLから継承が削除されます。

この動作は仕様によるものであり、結果の証明書とその秘密キーへのアクセスを制限する試みです。 「全員」が証明書と秘密鍵ファイルにアクセスすることを許可すると、everyoneがTDE暗号化データベースのバックアップを任意のサーバーに復元できるようになります。暗号化されていないかのようにすべての暗号化データを表示できます。あなたが提案しようとしていることは、暗号化を本質的に回避するので、私には非常に悪い考えのようです。

詳細とコード例については、私の ブログ投稿 を参照してください。


1-SQL Serverサービスが、バックアップステートメントのターゲットフォルダーに対する「フルコントロール」権限を持っていると想定します。

0
Max Vernon