概要
総括
ADatum Corporationはマイアミとモントリオールにオフィスを構えています。
ネットワークには、adatum.comという名前の単一のActive Directoryフォレストが含まれています。オフィスは、5ミリ秒の待ち時間を持つWANリンクを使用して互いに接続します。
A:Datumは、SQL Server 2014 Enterpriseエディションを使用してデータベースプラットフォームを標準化しています。
データベース
各オフィスには、Sales、Inventory、Customers、Products、Personnel、およびDevという名前のデータベースがあります。
サーバーとデータベースは、データベース管理者のチームによって管理されています。現在、すべてのデータベース管理者は、すべてのサーバーとすべてのデータベースに対して同じレベルの権限を持っています。
Customersデータベースには、CustomersとClassificationsという2つのテーブルがあります。
以下の図は、テーブルの関連部分を示しています。

次の表は、Classificationsテーブルの現在のデータを示しています。

インベントリデータベースは頻繁に更新されます。
データベースはレポート作成によく使用されます。
データベースのフルバックアップは、現在完了するのに3時間かかります。
ストアドプロシージャ
USP_1という名前のストアドプロシージャは、複数のレポートに対して数百万行のデータを生成します。 USP_1は、SalesデータベースとCustomersデータベースの5つの異なるテーブルのデータをTable1という名前のテーブルにまとめます。
Table1が作成された後、レポート作成プロセスはTable1からデータを連続して数回読み取ります。プロセスが完了したら、Table1が削除されます。
USP_2という名前のストアドプロシージャを使用して商品リストを生成します。商品リストには、カテゴリ別に分類された商品の名前が含まれています。
プロシージャがアクセスするテーブルがロックされているため、USP_2の実行に数分かかります。ロックはUSP_1とUSP_3によって引き起こされます。
USP_3という名前のストアドプロシージャを使用して価格を更新します。 USP_3は、トランザクション内から順番に呼び出されるいくつかのUPDATEステートメントで構成されています。
現在、UPDATEステートメントの1つが失敗すると、ストアドプロシージャは失敗します。 USP_4という名前のストアドプロシージャは、Sales、Customers、およびInventoryデータベースのストアドプロシージャを呼び出します。
ネストしたストアドプロシージャは、Sales、Customers、およびInventoryデータベースからテーブルを読み取ります。 USP_4はEXECUTE AS句を使用します。
入れ子になったストアドプロシージャはすべて、構造化例外処理を使用してエラーを処理します。 USP_5という名前のストアドプロシージャは、同じデータベース内の複数のストアドプロシージャを呼び出します。セキュリティチェックは、USP_5がストアドプロシージャを呼び出すたびに実行されます。
セキュリティチェックがUSP_5のパフォーマンスを低下させているとあなたは疑っています。ユーザアプリケーションによってアクセスされるすべてのストアドプロシージャは、ネストされたストアドプロシージャを呼び出します。
入れ子になったストアドプロシージャが直接呼び出されることはありません。
設計要件
データ復旧
ストレージ障害が発生した場合は、インベントリデータベースからデータを回復できる必要があります。目標復旧時間(RTO)は5分です。
データが誤って失われた場合は、Devデータベースからデータを回復できなければなりません。 1日の目標復旧時点(RPO)があります。
分類の変更
顧客の分類方法を変更する予定です。新しい分類には、注文数に基づいて4つのレベルがあります。分類は将来削除または追加される可能性があります。経営陣は過去の分類について過去のデータを維持するよう要求する。セキュリティジュニアデータベース管理者のグループは、Salesデータベースのセキュリティを管理できなければなりません。ジュニアデータベース管理者は他の管理権限を持ちません。
A:Datumは、どのユーザーが各ストアドプロシージャを実行しているのかを追跡したいと考えています。
ストレージ
ADatumのストレージは限られています。可能であれば、すべてのデータベースとすべてのバックアップについて、すべての記憶域を最小限に抑える必要があります。
エラー処理
現在、ストアドプロシージャにエラー処理コードはありません。
呼び出されたストアドプロシージャとネストされたストアドプロシージャにエラーを記録することを計画しています。入れ子になったストアドプロシージャは直接呼び出されることはありません。
ジュニアデータベース管理者のセキュリティ要件を満たすためのソリューションを推奨する必要があります。あなたは推薦に何を含めるべきですか?