sp_change_users_login(Transact-SQL)

업데이트: 2006년 12월 12일

기존 데이터베이스 사용자를 SQL Server 로그인에 매핑합니다.

[!참고] Windows 보안 주체에서 만든 SQL Server 로그인 또는 CREATE USER WITHOUT LOGIN을 사용하여 만든 사용자에 sp_change_users_login을 사용할 수 없습니다.

항목 링크 아이콘Transact-SQL 구문 표기 규칙

구문

sp_change_users_login [ @Action = ] 'action' 
    [ , [ @UserNamePattern = ] 'user' ] 
    [ , [ @LoginName = ] 'login' ] 
        [ , [ @Password = ] 'password' ]

인수

  • [ @Action= ] 'action'
    프로시저로 수행할 작업에 대해 설명합니다. action은 **varchar(10)**이며 다음 값 중 하나일 수 있습니다.

    설명

    Auto_Fix

    현재 데이터베이스의 sys.database_principals 시스템 카탈로그 뷰에 있는 사용자 항목을 동일한 이름의 SQL Server 로그인에 연결합니다. 동일한 이름의 로그인이 없으면 자동으로 생성됩니다. Auto_Fix 문의 결과를 조사하여 올바른 링크가 실제로 생성되었는지 확인합니다. 보안이 중요한 상황에서는 Auto_Fix를 사용하지 마십시오.

    Auto_Fix를 사용할 때 로그인이 아직 없으면 userpassword를 지정해야 합니다. 로그인이 있으면 user를 지정해야 하지만 password는 무시됩니다. login은 NULL이어야 합니다. user는 현재 데이터베이스에서 유효한 사용자여야 합니다. 로그인에는 다른 사용자가 매핑될 수 없습니다.

    Report

    현재 데이터베이스에서 어떠한 로그인에도 연결되지 않은 사용자와 해당 SID(보안 ID)를 나열합니다. user, loginpassword는 NULL이거나 지정하지 않아야 합니다.

    Update_One

    현재 데이터베이스에서 지정된 user를 기존 SQL Server login에 연결합니다. userlogin은 지정해야 합니다. password는 NULL이거나 지정하지 않아야 합니다.

  • [ @UserNamePattern= ] 'user'
    현재 데이터베이스에 있는 사용자의 이름입니다. usersysname이며 기본값은 NULL입니다.
  • [ @LoginName= ] 'login'
    SQL Server 로그인의 이름입니다. loginsysname이며 기본값은 NULL입니다.
  • [ @Password= ] 'password'
    Auto_Fix를 지정하여 생성되는 새 SQL Server 로그인에 할당된 암호입니다. 이미 일치하는 로그인이 있으면 사용자와 로그인이 매핑되고 password는 무시됩니다. 일치하는 로그인이 없으면 sp_change_users_login이 새 SQL Server 로그인을 만들고 password를 새 로그인의 암호로 할당합니다. passwordsysname이며 NULL이 아니어야 합니다.

    ms174378.security(ko-kr,SQL.90).gif보안 정보:
    강력한 암호를 사용하십시오. 자세한 내용은 강력한 암호를 참조하십시오.

반환 코드 값

0(성공) 또는 1(실패)

결과 집합

열 이름 데이터 형식 설명

UserName

sysname

데이터베이스 사용자 이름입니다.

UserSID

varbinary(85)

사용자의 보안 ID입니다.

주의

[!참고] sp_change_users_login은 데이터베이스 사용자를 Windows 수준 보안 주체, 인증서 또는 비대칭 키에 매핑하는 데 사용할 수 없습니다.

sp_change_users_login을 사용하여 현재 데이터베이스의 데이터베이스 사용자를 SQL Server 로그인과 연결할 수 있습니다. 사용자에 대한 로그인이 변경된 경우 sp_change_users_login을 통해 사용자 권한을 그대로 유지한 채 새 로그인에 사용자를 연결할 수 있습니다. 새 loginsa가 될 수 없고 userdbo, guest 또는 INFORMATION_SCHEMA 사용자가 될 수 없습니다.

사용자 정의 트랜잭션 내에서는 sp_change_users_login을 실행할 수 없습니다.

사용 권한

db_owner 고정 데이터베이스 역할의 멤버여야 합니다. sysadmin 고정 서버 역할의 멤버만이 Auto_Fix 옵션을 지정할 수 있습니다.

1. 현재 사용자와 로그인 간의 매핑에 대한 보고서 표시

다음 예에서는 현재 데이터베이스에서 어떠한 로그인에도 연결되지 않은 사용자와 해당 SID(보안 ID)에 대한 보고서를 생성합니다.

EXEC sp_change_users_login 'Report';

2. 데이터베이스 사용자를 새 SQL Server 로그인에 매핑

다음 예에서는 데이터베이스 사용자가 새 SQL Server 로그인에 연결됩니다. 데이터베이스 사용자 MB-Sales는 처음에 다른 로그인에 매핑되어 있다가 MaryB 로그인에 다시 매핑됩니다.

--Create the new login.
CREATE LOGIN MaryB WITH PASSWORD = '982734snfdHHkjj3';
GO
--Map database user MB-Sales to login MaryB.
USE AdventureWorks;
GO
EXEC sp_change_users_login 'Update_One', 'MB-Sales', 'MaryB';
GO

3. 사용자를 로그인에 자동으로 매핑하고 필요한 경우 새 로그인 만들기

다음 예에서는 Auto_Fix를 사용하여 기존 사용자를 동일한 이름의 로그인에 매핑하거나 Mary 로그인이 없는 경우 암호가 B3r12-3x$098f6인 SQL Server 로그인 Mary를 만드는 방법을 보여 줍니다.

USE AdventureWorks;
GO
EXEC sp_change_users_login 'Auto_Fix', 'Mary', NULL, 'B3r12-3x$098f6';
GO

참고 항목

참조

보안 저장 프로시저(Transact-SQL)
CREATE LOGIN(Transact-SQL)
sp_adduser(Transact-SQL)
sp_helplogins(Transact-SQL)
시스템 저장 프로시저(Transact-SQL)
sys.database_principals(Transact-SQL)

도움말 및 정보

SQL Server 2005 지원 받기

변경 내역

릴리스 내역

2006년 12월 12일

변경된 내용
  • sp_change_users_login 사용에 대한 참고 설명을 추가했습니다.