이 문서에서는 sp_help_revlogin 저장 프로시저를 사용하여 SQL Server용 Cloud SQL 인스턴스에서 SQL Server 로그인, 보안 식별자(SID), 비밀번호 해시를 내보내는 방법을 설명합니다.
데이터베이스를 이전하거나 SQL Server 인스턴스 간에 데이터베이스 동기화를 설정할 때는 SID와 비밀번호 해시가 일치하는 대상 인스턴스에서 사용자 로그인을 다시 만들어야 합니다. 이렇게 하면 데이터베이스 사용자가 해당 서버 로그인에 매핑된 상태로 유지되고 권한이 유지됩니다.
SQL Server용 Cloud SQL은 msdb 데이터베이스에서 sp_help_revlogin 저장 프로시저를 제공하여 사용자 로그인을 다시 만드는 Transact-SQL (T-SQL) 스크립트를 생성합니다.
시작하기 전에
필요한 역할
데이터베이스 플래그를 구성하는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한 다음 IAM 역할을 부여해 달라고 요청하세요.
- Cloud SQL 관리자 (
roles/cloudsql.admin) - Cloud SQL 편집자 (
roles/cloudsql.editor)
역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.
이 사전 정의된 역할에는 데이터베이스 플래그를 구성하는 데 필요한 cloudsql.instances.update 권한이 포함되어 있습니다.
커스텀 역할이나 다른 사전 정의된 역할을 사용하여 이 권한을 가져올 수도 있습니다.
데이터베이스 권한
기본 sqlserver SQL Server 사용자 역할에 액세스할 수 있는지 확인합니다.
데이터베이스 플래그 사용 설정
msdb 데이터베이스에 sp_help_revlogin 저장 프로시저를 설치하려면 인스턴스에서 cloud sql enable sp_help_revlogin 데이터베이스 플래그를 사용 설정하세요.
Google Cloud 콘솔
- Google Cloud 콘솔에서 Cloud SQL 인스턴스 페이지로 이동합니다.
- 인스턴스 이름을 클릭하여 개요 페이지를 엽니다.
- 수정을 클릭합니다.
- 인스턴스 맞춤설정 섹션에서 플래그를 펼칩니다.
- 플래그 추가를 클릭합니다.
- 사용 가능한 플래그 목록에서 cloud sql enable sp_help_revlogin을 선택합니다.
- 플래그 값을 사용으로 설정합니다.
- 저장을 클릭합니다.
gcloud CLI
gcloud CLI를 사용하여 플래그를 사용 설정합니다.
gcloud sql instances patch INSTANCE_NAME \ --database-flags="cloud sql enable sp_help_revlogin=on"
INSTANCE_NAME을 Cloud SQL 인스턴스 이름으로 바꿉니다.
지원되는 클라이언트 도구를 사용하여 연결
sp_help_revlogin 저장 프로시저는 표 형식 결과 집합 (SELECT 문) 대신 T-SQL PRINT 문 (정보 메시지)을 사용하여 생성된 CREATE LOGIN 스크립트를 출력합니다.
다음 도구 중 하나를 사용하여 Cloud SQL 인스턴스에 연결합니다.
- SQL Server Management Studio (SSMS): 인스턴스에 연결하고, 절차를 실행하고, 메시지 탭에서 생성된 스크립트를 확인합니다. 또는 쿼리를 실행하기 전에 Ctrl+T를 눌러 실행 출력 모드를 결과를 텍스트로로 전환합니다.
- Visual Studio Code: MSSQL 확장 프로그램을 사용하여 연결하고, 절차를 실행하고, 메시지 탭에서 생성된 스크립트를 확인합니다.
sqlcmd 유틸리티: 인스턴스에 연결하고 생성된 스크립트를 SQL 파일에 직접 출력합니다.
sqlcmd -S INSTANCE_IP \ -U USERNAME \ -P PASSWORD -d msdb \ -Q "EXEC dbo.sp_help_revlogin" -o output_logins.sql다음을 바꿉니다.
INSTANCE_IP: Cloud SQL 인스턴스의 IP 주소입니다.USERNAME: 관리 데이터베이스 사용자 이름 (예:sqlserver)PASSWORD: 데이터베이스 사용자 비밀번호입니다.
sp_help_revlogin을 사용하여 로그인 내보내기
msdb 데이터베이스에 연결하고 sp_help_revlogin 저장 프로시져를 실행합니다.
모든 고객 로그인을 내보내려면 다음 단계를 따르세요.
EXEC msdb.dbo.sp_help_revlogin;특정 로그인을 내보내려면 다음 단계를 따르세요.
EXEC msdb.dbo.sp_help_revlogin @login_name = 'LOGIN_NAME';LOGIN_NAME을 내보낼 로그인 이름으로 바꿉니다.
대상 인스턴스에서 로그인 다시 만들기
- 쿼리 출력에서 생성된
CREATE LOGIN문을 복사합니다. - 대상 SQL Server 인스턴스에 연결합니다.
- 쿼리 창에서 또는
sqlcmd를 사용하여 생성된 문을 실행합니다.
생성된 문은 원래 SID, 기본 데이터베이스, 비밀번호 해시를 사용하여 대상 인스턴스에 로그인을 만듭니다. 인스턴스 간에 로그인 정보를 전송할 때 고려사항에 대한 자세한 내용은 SQL Server 인스턴스 간에 로그인 및 비밀번호 전송에 관한 Microsoft 문서를 참고하세요.
제한사항 및 제외된 로그인
sp_help_revlogin는 내보내기에서 다음 유형의 로그인을 자동으로 제외합니다.
- Google Cloud 서비스 계정 및 내부 관리 계정
- 내부 SQL Server 시스템 계정 (
##로 시작하는 로그인) sysadmin고정 서버 역할에 할당된 로그인- 제한된 관리 서버 역할에 할당된 로그인
데이터베이스 플래그 사용 중지
저장 프로시저가 더 이상 필요하지 않으면 플래그를 off로 설정하거나 인스턴스에서 플래그를 삭제합니다.
Google Cloud 콘솔
- Google Cloud 콘솔에서 Cloud SQL 인스턴스 페이지로 이동합니다.
- 인스턴스 이름을 클릭하여 개요 페이지를 엽니다.
- 수정을 클릭합니다.
- 인스턴스 맞춤설정 섹션에서 플래그를 펼칩니다.
- cloud sql enable sp_help_revlogin을 찾아 값을 off로 설정하거나 삭제 를 클릭하여 플래그를 삭제합니다.
- 저장을 클릭합니다.
gcloud CLI
gcloud sql instances patch INSTANCE_NAME \ --database-flags="cloud sql enable sp_help_revlogin=off"
off로 설정되거나 삭제되면 Cloud SQL이 msdb 데이터베이스에서 dbo.sp_help_revlogin을 자동으로 삭제합니다.
다음 단계
- SQL Server 사용자에 대한 자세한 내용은 SQL Server 사용자를 참고하세요.
- 데이터베이스 플래그 구성에 대한 자세한 내용은 데이터베이스 플래그 구성을 참고하세요.
- 지원되는 저장 프로시저에 대한 자세한 내용은 SQL Server 저장 프로시저를 참고하세요.
- 로그인 및 비밀번호 전송에 대한 자세한 내용은 SQL Server 인스턴스 간 로그인 및 비밀번호 전송을 참고하세요.