Transact-SQL] 로그인 이름 및 사용자 이름 변경
sp_change_users_login
현재 데이터베이스의 SQL Server 사용자와 Microsoft® SQL Server™ 로그인 간의 관계를 변경합니다.
구문
sp_change_users_login [ @Action = ] 'action'
[ , [ @UserNamePattern = ] 'user' ]
[ , [ @LoginName = ] 'login' ]
인수
[@Action =] 'action'
프로시저가 수행할 동작을 설명합니다. action은 varchar(10)이며, 다음 값 중 하나를 사용할 수 있습니다.
값 | 설명 |
---|---|
Auto_Fix | 현재 데이터베이스의 sysusers 테이블의 사용자 항목을 syslogins의 동일한 이름의 로그인에 연결합니다. Auto_Fix문의 결과를 확인하여 연결의 결과가 의도한 대로 되었는지 확인하는 것이 좋습니다. 보안 인식 상황에서는 Auto_Fix를 사용하지 마십시오. Auto_Fix는 링크를 가장 잘 평가하며, 사용자가 의도한 것 이상의 액세스 권한을 가질 수 있도록 허용합니다.
user는 반드시 현재 데이터베이스의 유효한 사용자여야 하며, login은 반드시 NULL 또는 길이가 0인 문자열('')이거나 지정되지 않아야 합니다. |
Report | 현재 데이터베이스에 있으며 어떤 로그인에도 연결되지 않은 사용자와 이에 해당되는 보안 ID(SID)를 나열합니다.
user 및 login은 NULL 또는 길이가 0인 문자열('')이거나 지정하지 않아야 합니다. |
Update_One | 현재 데이터베이스에서 지정된 user를 login에 연결합니다. login은 반드시 미리 존재해야 하며, user 및 login은 지정해야 합니다. |
[@UserNamePattern =] 'user'
현재 데이터베이스의 SQL Server 사용자의 이름입니다. user는 sysname이며, 기본값은 NULL입니다. sp_change_users_login은 SQL Server 로그인 및 사용자의 보안 계정과만 함께 사용할 수 있으며 Microsoft Windows NT®사용자와는 함께 사용할 수 없습니다.
[@LoginName =] 'login'
SQL Server 로그인의 이름입니다. login은 sysname이며, 기본값은 NULL입니다.
반환 코드 값
0(성공) 또는 1(실패)
결과 집합
열 이름 | 데이터 형식 | 설명 |
---|---|---|
UserName | sysname | 로그인 이름 |
UserSID | varbinary(85) | 로그인 보안 ID |
비고
현재 데이터베이스의 사용자에 대한 보안 계정과 다른 로그인을 연결하는 데는 이 프로시저를 사용하십시오. 사용자에 대한 로그인이 변경되는 경우에는 sp_change_users_login을 사용하면 사용자의 권한을 상실하지 않고 새 로그인에 사용자를 링크할 수 있습니다.
login은 sa가 될 수 없으며 user는 dbo, guest 또는 INFORMATION_SCHEMA 사용자가 될 수 없습니다.
사용자 정의 트랜잭션 내에서는sp_change_users_login을 실행할 수 없습니다.
사용 권한
public 역할의 모든 구성원은 Report 옵션을 사용하여 sp_change_users_login을 실행할 수 있습니다. sysadmin 고정 서버 역할의 구성원만이 Auto_Fix 옵션을 지정할 수 있습니다. sysadmin 또는 db_owner 역할의 구성원만이 Update_One 옵션을 지정할 수 있습니다.
예제
A. 로그인 매핑에 대해 현재 사용자의 보고서 표시
다음은 현재 데이터베이스의 사용자와 보안 ID에 관한 보고서를 생성하는 예제입니다.
EXEC sp_change_users_login 'Report'
B. 사용자의 로그인 변경
다음은 pubs 데이터베이스의 Mary라는 사용자와 기존 로그인의 연결을 변경하여(sp_addlogin를 사용하여 추가된) NewMary로의 연결을 보여 주는 예제입니다.
--Add the new login.
USE master
go
EXEC sp_addlogin 'NewMary'
go
--Change the user account to link with the 'NewMary' login.
USE pubs
go
EXEC sp_change_users_login 'Update_One', 'Mary', 'NewMary'