Amazon Relational Database Service(RDS) for Microsoft SQL Server 읽기 전용 복제본은 마스터 인스턴스에서 변경한 내용을 비동기적으로 복제합니다. 제한 사항 중 하나는 인스턴스 생성 후 로그인이 동기화되지 않는다는 점입니다. 인스턴스 생성 후 로그인을 생성 및 동기화하려면 어떻게 해야 합니까?
해결 방법
다음 단계를 사용하여 마스터 인스턴스에서 SQL Server 및 Windows 로그인을 생성, 확인 및 동기화합니다.
SQL 로그인
SQL Server 로그인은 데이터베이스 엔진 인스턴스에서 인증되며 로그인 암호는 마스터 데이터베이스에 저장됩니다. 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. 마스터 인스턴스에서 윈도우 로그인 ‘[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는 마스터 데이터베이스에 대해 강화된 권한을 제공하지 않기 때문입니다.