Amazon RDS for SQL Server リードレプリカで SQL と Windows のログインを作成および同期するにはどうすればよいですか?

最終更新日: 2022 年 10 月 13 日

Amazon Relational Database Service (Amazon RDS) for Microsoft SQL Server リードレプリカは、マスターインスタンスに加えられた変更を非同期でレプリケートします。制限の 1 つは、インスタンスの作成後にログインが同期されないことです。インスタンスの作成後にログインを作成および同期するにはどうすればよいですか?

解決方法

次のステップを使用して、マスターインスタンスで SQL Server と Windows のログインを作成、確認、同期します。

SQL ログイン

SQL サーバーログインはデータベースエンジンインスタンスによって認証され、ログインパスワードはマスターデータベースに保存されます。SQL ログインは、あるデータベースのデータベースユーザーまたは異なるデータベースの異なるユーザーにマッピングできます。ログインとユーザーによって一意のステートメント ID (SID) が生成されます。つまり、リードレプリカでログインを同期するときは、ログイン SID がマスターインスタンスの SID と一致することを確認する必要があります。

マスターインスタンスで SQL ログインを作成し、リードレプリカと同期する

1.    マスターインスタンスで、「testlogin」という名前の SQL Server ログインを作成します。

USE [master]
GO
CREATE LOGIN [testlogin] WITH PASSWORD=N'Pa$$word';

2.    「testlogin」という名前のログインがマスターインスタンスで作成されていることを確認します。

SELECT name FROM sys.sql_logins WHERE name = 'testlogin';

3.    マスターインスタンスで、「testlogin」という名前のログインにマッピングされている SID を検索します。

select name, sid  FROM sys.sql_logins WHERE name = 'testlogin'
name                                         sid
-------------------------------------------------------------------------------
testlogin                      0xEBF23823BDEAED42823C76C8706F4B6B

4.    リードレプリカで、マスターインスタンスの SID にマッピングされた新しい「testlogin」という名前のログインを作成します。

CREATE Login testlogin  WITH password = ' Pa$$word', SID = 0xEBF23823BDEAED42823C76C8706F4B6B

5.    新しいログインが一致する SID で作成されていることを確認します。

SELECT name, sid  FROM sys.sql_logins WHERE name = 'testlogin'

Windows ログイン

Windows 認証の SQL サーバーログインは、オペレーティングシステムが認証を処理するインスタンスレベルのログインです。Windows ログインは、ユーザーアカウント、ローカルセキュリティグループ、またはドメインアカウントにマッピングできます。

マスターインスタンスとリードレプリカで Windows ログインを作成する

マスターインスタンスとリードレプリカで Windows ログインを作成するには、次の操作を実行します。

1.    マスターインスタンスで Windows ログイン「[SQLAD\user1]」を作成します。

CREATE LOGIN [SQLAD\user1] FROM WINDOWS
WITH DEFAULT_DATABASE=[master], DEFAULT_LANGUAGE=[us_english]
GO

2.    リードレプリカで、同じコマンドを使用してログイン「[SQLAD\user1]」を作成します。SQL ログインとは異なり、Windows 認証の SQL ログインでは SID をマッピングする必要はありません。

CREATE LOGIN [SQLAD\user1] FROM WINDOWS
WITH DEFAULT_DATABASE=[master], DEFAULT_LANGUAGE=[us_english]
GO

Amazon RDS では、Microsoft が提供するストアプロシージャ「sp_help_revlogin」と「sp_hexadecimal」を使用してログインを生成することはできません。これは、Amazon RDS がマスターデータベースで昇格された権限を提供していないためです。


この記事はお役に立ちましたか?


請求に関するサポートまたは技術サポートが必要ですか?