ALTER USER(Transact-SQL)

데이터베이스 사용자의 이름을 바꾸거나 기본 스키마를 변경합니다.

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

구문

ALTER USER user_name  
     WITH <set_item> [ ,...n ]
<set_item> ::= 
     NAME = new_user_name 
     | DEFAULT_SCHEMA = schema_name
     | LOGIN = login_name

인수

  • user_name
    이 데이터베이스 내에서 사용자를 식별하는 이름을 지정합니다.
  • LOGIN **=**login_name
    사용자의 SID(보안 ID)를 다른 로그인 SID에 일치하도록 변경하여 사용자를 해당 로그인으로 다시 매핑합니다.
  • NAME **=**new_user_name
    이 사용자의 새 이름을 지정합니다. new_user_name은 현재 데이터베이스에 아직 없어야 합니다.
  • DEFAULT_SCHEMA **=**schema_name
    서버가 이 사용자에 대한 개체의 이름을 확인할 때 검색할 첫 번째 스키마를 지정합니다.

주의

DEFAULT_SCHEMA를 정의하지 않으면 dbo가 사용자의 기본 스키마로 사용됩니다. DEFAULT_SCHEMA는 현재 데이터베이스에 없는 스키마로 설정할 수 있습니다. 따라서 해당 스키마가 생성되기 전에 DEFAULT_SCHEMA를 사용자에게 할당할 수 있습니다. Windows 그룹, 인증서 또는 비대칭 키에 매핑된 사용자에 대해서는 DEFAULT_SCHEMA를 지정할 수 없습니다.

ms176060.note(ko-kr,SQL.90).gif중요:
사용자가 sysadmin 고정 서버 역할의 멤버이면 DEFAULT_SCHEMA 값은 무시됩니다. sysadmin 고정 서버 역할의 모든 멤버는 기본 스키마가 dbo입니다.

새 사용자 이름의 SID가 데이터베이스에 기록된 SID와 일치할 때만 Windows 로그인 또는 그룹에 매핑된 사용자의 이름을 변경할 수 있습니다. 이 검사는 데이터베이스에서 Windows 로그인의 스푸핑을 방지하는 데 도움이 됩니다.

WITH LOGIN 절을 사용하면 사용자를 다른 로그인으로 다시 매핑할 수 있습니다. 로그인이 없는 사용자, 인증서로 매핑된 사용자 또는 비대칭 키로 매핑된 사용자는 이 절을 사용하여 다시 매핑할 수 없습니다. SQL Server 사용자 및 Windows 사용자(또는 그룹)만 다시 매핑할 수 있습니다. WITH LOGIN 절은 Windows 계정을 SQL Server 로그인으로 바꾸는 등 사용자의 유형을 바꾸는 데는 사용할 수 없습니다.

사용자가 Windows 사용자인 경우, 이름이 Windows 이름(백슬래시 포함)이거나 사용자에 대한 새 이름이 지정되지 않았고 현재 이름이 로그인 이름과 다른 경우 사용자의 이름이 자동으로 로그인 이름으로 다시 매핑됩니다. 그렇지 않은 경우 호출자가 추가로 NAME 절을 호출하지 않는 이상 사용자의 이름은 변경되지 않습니다.

[!참고] ALTER ANY USER 권한이 있는 사용자는 모든 사용자의 기본 스키마를 변경할 수 있습니다. 스키마가 변경된 사용자는 자신도 모르게 잘못된 테이블에서 데이터를 선택하거나 잘못된 스키마의 코드를 실행할 수 있습니다.

SQL Server 로그인, 인증서 또는 비대칭 키에 매핑되는 사용자의 이름에는 백슬래시 문자(\)가 포함될 수 없습니다.

ms176060.Caution(ko-kr,SQL.90).gif주의:
SQL Server 2005에서는 스키마 동작이 이전 버전의 SQL Server와 다르게 변경되었습니다. 스키마가 데이터베이스 사용자와 같다고 가정하는 코드에서 올바른 결과가 반환되지 않을 수도 있습니다. sysobjects를 비롯한 이전 카탈로그 뷰는 CREATE SCHEMA, ALTER SCHEMA, DROP SCHEMA, CREATE USER, ALTER USER, DROP USER, CREATE ROLE, ALTER ROLE, DROP ROLE, CREATE APPROLE, ALTER APPROLE, DROP APPROLE, ALTER AUTHORIZATION 등의 DDL 문이 사용된 데이터베이스에서 사용하지 않아야 합니다. 이러한 문이 사용된 데이터베이스에서는 새 카탈로그 뷰를 사용해야 합니다. 새 카탈로그 뷰는 SQL Server 2005에서 도입된 보안 주체와 스키마 분리를 고려합니다. 카탈로그 뷰에 대한 자세한 내용은 카탈로그 뷰(Transact-SQL)를 참조하십시오.

사용 권한

사용자의 이름을 변경하려면 데이터베이스에 대한 ALTER ANY USER 권한이 필요합니다. 기본 스키마를 변경하려면 사용자에 대한 ALTER 권한이 필요합니다. 사용자는 자신의 기본 스키마를 변경할 수 있습니다.

사용자를 로그온에 다시 매핑하려면 데이터베이스에 대한 CONTROL 권한이 필요합니다.

1. 데이터베이스 사용자의 이름 변경

다음 예에서는 데이터베이스 사용자 Mary5의 이름을 Mary51로 변경합니다.

USE AdventureWorks;
ALTER USER Mary5 WITH NAME = Mary51;
GO 

2. 사용자의 기본 스키마 변경

다음 예에서는 Mary51 사용자의 기본 스키마를 Purchasing으로 변경합니다.

USE AdventureWorks;
ALTER USER Mary51 WITH DEFAULT_SCHEMA = Purchasing;
GO

참고 항목

참조

CREATE USER(Transact-SQL)
DROP USER(Transact-SQL)
EVENTDATA(Transact-SQL)

도움말 및 정보

SQL Server 2005 지원 받기