10

本番アプリ用にプレミアム P2 SQL Azure データベースを使用しています。セキュリティ上の理由から、DB 固有のスキーマ/ビュー/ロールと、SSRS クエリからデータを読み取るための特定の DB ユーザー アカウントを作成しました。

PRIMARYサーバーとデータベースを呼び出すだけですMyApp

このためのセットアップ スクリプトを以下に示します。

-- On Primary Master
CREATE LOGIN ssrsuser WITH password='******'

-- On Primary MyApp
CREATE USER ssrsuser FOR LOGIN ssrsuser 
CREATE ROLE [ssrsreader] AUTHORIZATION [db_owner]
GRANT SELECT ON SCHEMA :: [App] TO [ssrsreader]
GRANT SELECT ON SCHEMA :: [Reports] TO [ssrsreader]
EXEC sp_addrolemember 'ssrsreader', 'ssrsuser'

そのため、ユーザーは Prod DB に多くの負荷をかけていたため、レポート機能をセカンダリ同期スレーブ データベースに移動する時期であると判断しました。

SQL Azure Premium レベルを使用しているため、読み取り専用のセカンダリ コピーでアクティブ ジオ レプリケーションを有効にすることができます。実際、MS は、レポートなどの読み取り専用のワークロードに適しているとさえ言っています。

サーバーをセットアップし、シードを有効にしました。これで完了です。管理者ユーザーとパスワードSECONDARYを使用して読み取り専用コピーにアクセスできます。SECONDARY

しかし、SECONDARYサーバーには のログインがありません。ssrsuser私は で作成できますが、データベースが読み取り専用モードであるため、ユーザーSECONDARY.masterを作成できません。DROP RECREATESECONDARY.MyApp

これを回避する他の方法はありますか。SECONDARYサーバー管理者のユーザーとパスワードをSSRS接続文字列に入れる必要は本当にありません。

4

1 に答える 1

14

ユーザー データベースで ssruser の SID を再生成する必要はありません。複製の結果、すでに存在しています。その SID をセカンダリ サーバーのマスターの LOGIN に関連付けるだけです。詳細については、この記事を参照してください。 https://azure.microsoft.com/en-us/documentation/articles/sql-database-geo-replication-security-config/

これが役立つことを願っています。

于 2015-04-09T18:11:25.503 に答える