web-dev-qa-db-ja.com

Amazon AWSでのMS SQL Express 2016:データベースをオフラインにすることはできますが、オンラインにすることはできません

(GUIを使用して)データベースをオフラインにできますが、オンラインに戻すことはできません。サーバーの詳細は次のとおりです。

RDBMS:MS SQL 2016 Expressホスト:Amazon AWS/RDS無料利用枠

問題の詳細/履歴数か月前、Amazon AWSにdbインスタンスを作成し、作成時に 'master/admin'を作成しましたアカウントはAWS/RDSウェブページで設定されました。この「admin」アカウントを使用して、そのインスタンスにいくつかのデータベースを問題なく作成しました。

過去数か月間、私はこの「admin」アカウントを使用して、いくつかのデータベースを包含データベースに変更しました。これは、包含ユーザーをセットアップできるようにするためです。このサーバーインスタンスで同じ管理者アカウントを使用してこれを何回か問題なく実行しました。

昨夜、この管理者アカウントで新しいデータベースを作成しました。次に、この新しいデータベースを包含データベースとして設定しようとしたところ、プロセスが失敗しました。 「後でもう一度やり直してください」などのダイアログボックスのエラーメッセージが表示されます。

3回目の試行が失敗した後、データベースをオフラインにすることを決めました(SSMSのGUIを使用)。私は、この新しいデータベースに存在する可能性のある開いているプロセスまたは接続を強制的に閉じるためにこれを行いました。うまくいきました。ただし、オンラインに戻すことはできませんでした。 GUIとクエリを使用して試したところ、失敗し続けます。

次に、この「admin」アカウントに割り当てられているサーバーの役割を確認しました。 sysadminロールの一部ではありません。私が理解しているように、「sysadmin」ロールは、dbインスタンスに対して絶対に何でも実行できます。私の管理者アカウントは、Amazon AWSの社内DBAを対象としているため、このsysadminロールのものではないと考えています。 sysadminとして追加しようとしましたが、失敗します。

私の「admin」アカウントが問題であることを確認するために、別のデータベースをオフラインにしました(空です)。オフラインになりましたが、オンラインに戻ることもできません。

何が問題でしょうか?助けてください。私のスキルレベルは非常に低く、私は進んでいる間に学んでいることに注意してください。

サーバーログには、有用な情報は何も表示されません。スクリーンショットを添付しました。

SSMSでデータベースをオンラインにする際のエラー

Bring DB Online Error

SSMSからのSQL Serverエラーログの表示エラー

2. SQL Server Log

ログインの権限

3. Server Roles of My Admin Account

Sysadminロールへのログインの追加エラー

4. Failure to add SysAdmin Role to Admin Account

1

9
Theo Fitchner

正解です。管理者アカウントはsysadminではなく、それほど強力ではないアカウントです。これは、AWSがすべてをこのインスタンスに実行すること、およびセキュリティの境界をエスケープすることを制限できるようにするために必要です。

データベースをオンラインで設定する

管理者アカウントの一部として、データベースをオフラインに設定するアクセス権がありますが、データベースをオンラインに戻すにはsysadminが必要です(これはありません)。このアクセス許可の制限を回避するために、AWSはデータベースをオンラインにするためのストアドプロシージャを提供しています。 rdsadminデータベースのrds_set_database_onlineプロシージャを使用する必要があります

EXEC rdsadmin.dbo.rds_set_database_online 'MyOfflineDatabase'; 

この手順は、AWS here によって完全に文書化されています。

エラーログの読み取り

同様に、sysadminが必要なため、RDS SQL Serverではxp_readerrorlogを使用できません。代わりに、AWSはストアドプロシージャrds_read_error_logを提供しています

EXEC rdsadmin.dbo.rds_read_error_log;

この手順は、AWS here によって完全に文書化されています。

16
AMtwo