다음을 통해 공유


ALTER USER(Transact-SQL)

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

Transact-SQL 구문 표기 규칙

참고 항목

Microsoft Entra ID는 이전에 Azure Active Directory(Azure AD)로 알려졌습니다.

제품 선택

다음 행에서 관심 있는 제품 이름을 선택하면 해당 제품의 정보만 표시됩니다.

* SQL Server *  

 

SQL Server

구문

-- Syntax for SQL Server

ALTER USER userName
 WITH <set_item> [ ,...n ]
[;]

<set_item> ::=
NAME = newUserName
| DEFAULT_SCHEMA = { schemaName | NULL }
| LOGIN = loginName
| PASSWORD = 'password' [ OLD_PASSWORD = 'oldpassword' ]
| DEFAULT_LANGUAGE = { NONE | <lcid> | <language name> | <language alias> }
| ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ ON | OFF ]

인수

userName 이 데이터베이스 내에서 사용자를 식별하는 이름을 지정합니다.

LOGIN = loginName 사용자의 SID(보안 식별자)를 다른 로그인의 SID와 일치하도록 변경하여 사용자를 다른 로그인으로 다시 매핑합니다.

NAME = newUserName 이 사용자의 새 이름을 지정합니다. newUserName은 현재 데이터베이스에 아직 없는 이름이어야 합니다.

DEFAULT_SCHEMA = { schemaName | NULL } 서버에서 이 사용자에 대한 개체 이름을 확인할 때 첫 번째로 검색할 스키마를 지정합니다. 기본 스키마를 NULL로 설정하면 Windows 그룹에서 기본 스키마가 제거됩니다. Windows 사용자에는 NULL 옵션을 사용할 수 없습니다.

PASSWORD = 'password' 적대용 상: SQL Server 2012(11.x) 이상, SQL Database.

변경할 사용자의 암호를 지정합니다. 암호는 대소문자를 구분합니다.

참고

이 옵션은 포함된 사용자에 대해서만 사용할 수 있습니다. 자세한 내용은 포함된 데이터베이스sp_migrate_user_to_contained(Transact-SQL)를 참조하세요.

OLD_PASSWORD =’oldpassword’적대용 상: SQL Server 2012(11.x) 이상, SQL Database.

'암호'로 바뀔 현재 사용자 암호입니다. 암호는 대소문자를 구분합니다. ALTER ANY USER 권한이 없으면 OLD_PASSWORD가 있어야 암호를 변경할 수 있습니다. OLD_PASSWORD를 요구하면 IMPERSONATION 권한을 가진 사용자가 암호를 변경할 수 없습니다.

참고

이 옵션은 포함된 사용자에 대해서만 사용할 수 있습니다.

DEFAULT_LANGUAGE ={ NONE | <lcid> | <language name> | <language alias> }Applies to: SQL Server 2012 (11.x) and later.

사용자에게 할당할 기본 언어를 지정합니다. 이 옵션을 NONE으로 설정하면 기본 언어가 데이터베이스의 현재 기본 언어로 설정됩니다. 나중에 데이터베이스의 기본 언어가 변경되더라도 사용자의 기본 언어는 그대로 유지됩니다. DEFAULT_LANGUAGE는 로컬 ID(lcid), 언어 이름 또는 언어 별칭이 될 수 있습니다.

참고

이 옵션은 포함된 데이터베이스에서 포함된 사용자에 대해서만 지정할 수 있습니다.

ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ ON | OFF ] 적용 대상: SQL Server 2016(13.x) 이상, SQL Database.

대량 복사 작업에서 서버에 대한 암호화 메타데이터 검사를 표시하지 않습니다. 이를 통해 사용자는 데이터를 암호 해독하지 않고도 테이블이나 데이터베이스 사이에 암호화된 데이터를 대량 복사할 수 있습니다. 기본값은 OFF입니다.

경고

이 옵션을 부적절하게 사용할 경우 데이터가 손상될 수 있습니다. 자세한 내용은 상시 암호화로 보호되는 중요한 데이터 마이그레이션을 참조하세요.

설명

기본 스키마는 서버에서 이 데이터베이스 사용자에 대한 개체 이름을 확인할 때 첫 번째로 검색하는 스키마가 됩니다. 달리 지정하지 않는 한 기본 스키마는 이 데이터베이스 사용자가 만든 개체의 소유자가 됩니다.

사용자에게 기본 스키마가 있는 경우에는 해당 기본 스키마가 사용됩니다. 사용자에게 기본 스키마가 없지만 사용자가 기본 스키마가 있는 그룹의 멤버인 경우에는 그룹의 기본 스키마가 사용됩니다. 사용자에게 기본 스키마가 없고 사용자가 두 개 이상 그룹의 멤버인 경우 principle_id가 가장 낮고 명시적으로 설정된 기본 스키마가 있는 Windows 그룹의 기본 스키마가 사용자의 기본 스키마가 됩니다. 사용자의 기본 스키마를 확인할 수 없으면 dbo 스키마가 사용됩니다.

DEFAULT_SCHEMA는 현재 데이터베이스에 없는 스키마로 설정할 수 있습니다. 따라서 해당 스키마가 생성되기 전에 DEFAULT_SCHEMA를 사용자에게 할당할 수 있습니다.

인증서 또는 비대칭 키에 매핑된 사용자에는 DEFAULT_SCHEMA를 지정할 수 없습니다.

중요

사용자가 sysadmin 고정 서버 역할의 멤버이면 DEFAULT_SCHEMA 값은 무시됩니다. sysadmin 고정 서버 역할의 모든 멤버는 기본 스키마가 dbo입니다.

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

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

다른 서버에서 데이터베이스를 복원하고 데이터베이스 사용자가 SQL Server 로그인에 매핑된 경우 일치하지 않는 SID가 발생할 수 있습니다. 데이터베이스의 사용자 SID를 서버의 로그인 SID로 대체해서 WITH LOGIN 절을 사용하여 이 상황을 해결할 수 있습니다.

다음 조건이 충족되면 사용자 이름이 로그인 이름으로 자동 변경됩니다.

  • 사용자가 Windows 사용자입니다.

  • 이름이 Windows 이름입니다(백슬래시 포함).

  • 새 이름이 지정되지 않았습니다.

  • 현재 이름이 로그인 이름과 다릅니다.

위의 조건을 충족하지 않으면 사용자 이름이 변경되지 않으며 호출자가 NAME 절을 추가로 호출해야 합니다.

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

주의

SQL Server 2005부터 스키마 동작이 변경되었습니다. 이에 따라 스키마가 데이터베이스 사용자와 같다고 가정하는 코드에서 올바른 결과가 반환되지 않을 수 있습니다. 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 ANY USER 권한이 필요합니다.

사용자의 대상 로그인을 변경하려면 데이터베이스에 대한 CONTROL 권한이 필요합니다.

데이터베이스에 대한 CONTROL 권한이 있는 사용자의 사용자 이름을 변경하려면 데이터베이스에 대한 CONTROL 권한이 필요합니다.

기본 스키마나 언어를 변경하려면 사용자에 대한 ALTER 권한이 필요합니다. 사용자는 자신의 기본 스키마 또는 언어를 변경할 수 있습니다.

예제

모든 예제는 사용자 데이터베이스에서 실행됩니다.

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

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

ALTER USER Mary5 WITH NAME = Mary51;
GO

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

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

ALTER USER Mary51 WITH DEFAULT_SCHEMA = Purchasing;
GO

C. 한 번에 여러 옵션 변경

다음 예에서는 포함된 데이터베이스 사용자에 대해 여러 옵션을 하나의 문에서 변경합니다.

적용 대상: SQL Server 2012(11.x) 이상

ALTER USER Philip
WITH NAME = Philipe
, DEFAULT_SCHEMA = Development
, PASSWORD = 'W1r77TT98%ab@#' OLD_PASSWORD = 'New Devel0per'
, DEFAULT_LANGUAGE= French ;
GO

D. 일치하지 않는 SID 수정

다음 예에서는 SQL Server 인증 로그인에 대해 서버의 SID와 일치하도록 데이터베이스의 사용자 SID를 수정합니다.

ALTER USER Mai
WITH LOGIN = Mai;
GO

참고 항목

* 패브릭의 Azure SQL Database 및 SQL Database *

 

Microsoft Fabric의 Azure SQL Database 및 SQL 데이터베이스

구문

Azure SQL 데이터베이스용 구문:

-- Syntax for Azure SQL Database

ALTER USER userName
 WITH <set_item> [ ,...n ]

<set_item> ::=
NAME = newUserName
| DEFAULT_SCHEMA = schemaName
| LOGIN = loginName
| ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ ON | OFF ]
[;]

-- Azure SQL Database Update Syntax
ALTER USER userName
 WITH <set_item> [ ,...n ]
[;]

<set_item> ::=
NAME = newUserName
| DEFAULT_SCHEMA = { schemaName | NULL }
| LOGIN = loginName
| PASSWORD = 'password' [ OLD_PASSWORD = 'oldpassword' ]
| ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ ON | OFF ]

-- SQL Database syntax when connected to a federation member
ALTER USER userName
 WITH <set_item> [ ,... n ]
[;]

<set_item> ::=
 NAME = newUserName

Microsoft Fabric의 SQL 데이터베이스 구문

ALTER USER   
    {  
    Microsoft_Entra_principal FROM EXTERNAL PROVIDER [WITH OBJECT_ID = 'objectid'] 
    }  
 [ ; ]  

-- Users that cannot authenticate   
ALTER USER user_name   
    {  
         { FOR | FROM } CERTIFICATE cert_name   
       | { FOR | FROM } ASYMMETRIC KEY asym_key_name   
    }  
 [ ; ]  

<options_list> ::=  
    DEFAULT_LANGUAGE = { NONE | lcid | language name | language alias }   

-- SQL Database syntax when connected to a federation member  
ALTER USER user_name
[;]

인수

userName

이 데이터베이스 내에서 사용자를 식별하는 이름을 지정합니다.

LOGIN = loginName

로그인의 SID와 일치하도록 사용자의 SID(보안 식별자)를 변경하여 사용자를 다른 로그인에 다시 매핑합니다.

ALTER USER 문이 SQL 일괄 처리의 유일한 문인 경우 Azure SQL Database는 WITH LOGIN 절을 지원합니다. ALTER USER 문이 SQL 일괄 처리의 유일한 문이 아니거나 동적 SQL에서 실행되는 경우 WITH LOGIN 절이 지원되지 않습니다.

NAME = newUserName

이 사용자의 새 이름을 지정합니다. newUserName은 현재 데이터베이스에 아직 없는 이름이어야 합니다.

= DEFAULT_SCHEMA { schemaName | NULL }

이 사용자의 개체 이름을 확인할 때 서버에서 검색할 첫 번째 스키마를 지정합니다. 기본 스키마를 NULL로 설정하면 Windows 그룹에서 기본 스키마가 제거됩니다. Windows 사용자에는 NULL 옵션을 사용할 수 없습니다.

PASSWORD = 'password'

적용 대상: SQL Database.

변경할 사용자의 암호를 지정합니다. 암호는 대소문자를 구분합니다.

참고

이 옵션은 포함된 사용자에 대해서만 사용할 수 있습니다. 자세한 내용은 포함된 데이터베이스sp_migrate_user_to_contained(Transact-SQL)를 참조하세요.

OLD_PASSWORD ='oldpassword'

적용 대상: SQL Database.

'암호'로 바뀔 현재 사용자 암호입니다. 암호는 대소문자를 구분합니다. ALTER ANY USER 권한이 없으면 OLD_PASSWORD가 있어야 암호를 변경할 수 있습니다. OLD_PASSWORD를 요구하면 IMPERSONATION 권한을 가진 사용자가 암호를 변경할 수 없습니다.

참고

이 옵션은 포함된 사용자에 대해서만 사용할 수 있습니다.

ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ ON | OFF ]

적용 대상: SQL Server 2016(13.x) 이상, SQL Database.

대량 복사 작업에서 서버에 대한 암호화 메타데이터 검사를 표시하지 않습니다. 이를 통해 사용자는 데이터를 암호 해독하지 않고도 테이블이나 데이터베이스 사이에 암호화된 데이터를 대량 복사할 수 있습니다. 기본값은 OFF입니다.

경고

이 옵션을 부적절하게 사용할 경우 데이터가 손상될 수 있습니다. 자세한 내용은 상시 암호화로 보호되는 중요한 데이터 마이그레이션을 참조하세요.

설명

기본 스키마는 서버에서 이 데이터베이스 사용자에 대한 개체 이름을 확인할 때 첫 번째로 검색하는 스키마가 됩니다. 달리 지정하지 않는 한 기본 스키마는 이 데이터베이스 사용자가 만든 개체의 소유자가 됩니다.

사용자에게 기본 스키마가 있는 경우에는 해당 기본 스키마가 사용됩니다. 사용자에게 기본 스키마가 없지만 사용자가 기본 스키마가 있는 그룹의 멤버인 경우에는 그룹의 기본 스키마가 사용됩니다. 사용자에게 기본 스키마가 없고 사용자가 두 개 이상 그룹의 멤버인 경우 principle_id가 가장 낮고 명시적으로 설정된 기본 스키마가 있는 Windows 그룹의 기본 스키마가 사용자의 기본 스키마가 됩니다. 사용자의 기본 스키마를 확인할 수 없으면 dbo 스키마가 사용됩니다.

DEFAULT_SCHEMA는 현재 데이터베이스에 없는 스키마로 설정할 수 있습니다. 따라서 해당 스키마가 생성되기 전에 DEFAULT_SCHEMA를 사용자에게 할당할 수 있습니다.

인증서 또는 비대칭 키에 매핑된 사용자에는 DEFAULT_SCHEMA를 지정할 수 없습니다.

중요

사용자가 sysadmin 고정 서버 역할의 멤버이면 DEFAULT_SCHEMA 값은 무시됩니다. sysadmin 고정 서버 역할의 모든 멤버는 기본 스키마가 dbo입니다.

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

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

다음 조건이 충족되면 사용자 이름이 로그인 이름으로 자동 변경됩니다.

  • 사용자가 Windows 사용자입니다.

  • 이름이 Windows 이름입니다(백슬래시 포함).

  • 새 이름이 지정되지 않았습니다.

  • 현재 이름이 로그인 이름과 다릅니다.

위의 조건을 충족하지 않으면 사용자 이름이 변경되지 않으며 호출자가 NAME 절을 추가로 호출해야 합니다.

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

주의

SQL Server 2005부터 스키마 동작이 변경되었습니다. 이에 따라 스키마가 데이터베이스 사용자와 같다고 가정하는 코드에서 올바른 결과가 반환되지 않을 수 있습니다. 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 ANY USER 권한이 필요합니다.

사용자의 대상 로그인을 변경하려면 데이터베이스에 대한 CONTROL 권한이 필요합니다.

데이터베이스에 대한 CONTROL 권한이 있는 사용자의 사용자 이름을 변경하려면 데이터베이스에 대한 CONTROL 권한이 필요합니다.

기본 스키마나 언어를 변경하려면 사용자에 대한 ALTER 권한이 필요합니다. 사용자는 자신의 기본 스키마 또는 언어를 변경할 수 있습니다.

예제

모든 예제는 사용자 데이터베이스에서 실행됩니다.

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

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

ALTER USER Mary5 WITH NAME = Mary51;
GO

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

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

ALTER USER Mary51 WITH DEFAULT_SCHEMA = Purchasing;
GO

C. 한 번에 여러 옵션 변경

다음 예에서는 포함된 데이터베이스 사용자에 대해 여러 옵션을 하나의 문에서 변경합니다.

ALTER USER Philip
WITH NAME = Philipe
, DEFAULT_SCHEMA = Development
, PASSWORD = 'W1r77TT98%ab@#' OLD_PASSWORD = 'New Devel0per';
GO

참고 항목

* SQL Managed Instance *

 

Azure SQL Managed Instance

구문

Important

Microsoft Entra 로그인 DEFAULT_SCHEMA = { schemaName | NULL } 을 사용하는 사용자에게 적용할 때 Azure SQL Managed Instance에는 다음 옵션만 지원됩니다. 또한 DEFAULT_LANGUAGE = { NONE | lcid | language name | language alias }

Azure SQL Managed Instance로 마이그레이션된 데이터베이스의 사용자를 다시 매핑하는 데 도움이 되는 새 구문 확장이 추가되었습니다. ALTER USER 구문을 사용하면 페더레이션 및 동기화된 도메인의 데이터베이스 사용자를 Microsoft Entra ID와 Microsoft Entra 로그인에 매핑할 수 있습니다.

-- Syntax for SQL Managed Instance
ALTER USER userName
 { WITH <set_item> [ ,...n ] | FROM EXTERNAL PROVIDER }
[;]

<set_item> ::=
NAME = newUserName
| DEFAULT_SCHEMA = { schemaName | NULL }
| LOGIN = loginName
| PASSWORD = 'password' [ OLD_PASSWORD = 'oldpassword' ]
| DEFAULT_LANGUAGE = { NONE | <lcid> | <language name> | <language alias> }
| ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ ON | OFF ]

-- Users or groups that are migrated as federated and synchronized with Azure AD have the following syntax:

/** Applies to Windows users that were migrated and have the following user names:
- Windows user <domain\user>
- Windows group <domain\MyWindowsGroup>
- Windows alias <MyWindowsAlias>
**/

ALTER USER userName
 { WITH <set_item> [ ,...n ] | FROM EXTERNAL PROVIDER }
[;]

<set_item> ::=
 NAME = newUserName
| DEFAULT_SCHEMA = { schemaName | NULL }
| LOGIN = loginName
| DEFAULT_LANGUAGE = { NONE | <lcid> | <language name> | <language alias> }

인수

userName 이 데이터베이스 내에서 사용자를 식별하는 이름을 지정합니다.

LOGIN = loginName 사용자의 SID(보안 식별자)를 다른 로그인의 SID와 일치하도록 변경하여 사용자를 다른 로그인으로 다시 매핑합니다.

ALTER USER 문이 SQL 일괄 처리의 유일한 문인 경우 Azure SQL Database는 WITH LOGIN 절을 지원합니다. ALTER USER 문이 SQL 일괄 처리의 유일한 문이 아니거나 동적 SQL에서 실행되는 경우 WITH LOGIN 절이 지원되지 않습니다.

NAME = newUserName 이 사용자의 새 이름을 지정합니다. newUserName은 현재 데이터베이스에 아직 없는 이름이어야 합니다.

DEFAULT_SCHEMA = { schemaName | NULL } 서버에서 이 사용자에 대한 개체 이름을 확인할 때 첫 번째로 검색할 스키마를 지정합니다. 기본 스키마를 NULL로 설정하면 Windows 그룹에서 기본 스키마가 제거됩니다. Windows 사용자에는 NULL 옵션을 사용할 수 없습니다.

PASSWORD = 'password'

변경할 사용자의 암호를 지정합니다. 암호는 대소문자를 구분합니다.

참고

이 옵션은 포함된 사용자에 대해서만 사용할 수 있습니다. 자세한 내용은 포함된 데이터베이스sp_migrate_user_to_contained(Transact-SQL)를 참조하세요.

= OLD_PASSWORD 'oldpassword'

'암호'로 바뀔 현재 사용자 암호입니다. 암호는 대소문자를 구분합니다. ALTER ANY USER 권한이 없으면 OLD_PASSWORD가 있어야 암호를 변경할 수 있습니다. OLD_PASSWORD를 요구하면 IMPERSONATION 권한을 가진 사용자가 암호를 변경할 수 없습니다.

참고

이 옵션은 포함된 사용자에 대해서만 사용할 수 있습니다.

DEFAULT_LANGUAGE ={ NONE | <lcid> | <language name> | <language alias> }

사용자에게 할당할 기본 언어를 지정합니다. 이 옵션을 NONE으로 설정하면 기본 언어가 데이터베이스의 현재 기본 언어로 설정됩니다. 나중에 데이터베이스의 기본 언어가 변경되더라도 사용자의 기본 언어는 그대로 유지됩니다. DEFAULT_LANGUAGE는 로컬 ID(lcid), 언어 이름 또는 언어 별칭이 될 수 있습니다.

참고

이 옵션은 포함된 데이터베이스에서 포함된 사용자에 대해서만 지정할 수 있습니다.

ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ ON | OFF ]

대량 복사 작업에서 서버에 대한 암호화 메타데이터 검사를 표시하지 않습니다. 이를 통해 사용자는 데이터를 암호 해독하지 않고도 테이블이나 데이터베이스 사이에 암호화된 데이터를 대량 복사할 수 있습니다. 기본값은 OFF입니다.

경고

이 옵션을 부적절하게 사용할 경우 데이터가 손상될 수 있습니다. 자세한 내용은 상시 암호화로 보호되는 중요한 데이터 마이그레이션을 참조하세요.

설명

기본 스키마는 서버에서 이 데이터베이스 사용자에 대한 개체 이름을 확인할 때 첫 번째로 검색하는 스키마가 됩니다. 달리 지정하지 않는 한 기본 스키마는 이 데이터베이스 사용자가 만든 개체의 소유자가 됩니다.

사용자에게 기본 스키마가 있는 경우에는 해당 기본 스키마가 사용됩니다. 사용자에게 기본 스키마가 없지만 사용자가 기본 스키마가 있는 그룹의 멤버인 경우에는 그룹의 기본 스키마가 사용됩니다. 사용자에게 기본 스키마가 없고 사용자가 두 개 이상 그룹의 멤버인 경우 principle_id가 가장 낮고 명시적으로 설정된 기본 스키마가 있는 Windows 그룹의 기본 스키마가 사용자의 기본 스키마가 됩니다. 사용자의 기본 스키마를 확인할 수 없으면 dbo 스키마가 사용됩니다.

DEFAULT_SCHEMA는 현재 데이터베이스에 없는 스키마로 설정할 수 있습니다. 따라서 해당 스키마가 생성되기 전에 DEFAULT_SCHEMA를 사용자에게 할당할 수 있습니다.

인증서 또는 비대칭 키에 매핑된 사용자에는 DEFAULT_SCHEMA를 지정할 수 없습니다.

중요

사용자가 sysadmin 고정 서버 역할의 멤버이면 DEFAULT_SCHEMA 값은 무시됩니다. sysadmin 고정 서버 역할의 모든 멤버는 기본 스키마가 dbo입니다.

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

WITH LOGIN 절을 사용하면 사용자를 다른 로그인으로 다시 매핑할 수 있습니다. 로그인이 없는 사용자, 인증서로 매핑된 사용자 또는 비대칭 키에 매핑된 사용자는 이 절을 사용하여 다시 매핑할 수 없습니다. SQL 사용자 및 Windows 사용자(또는 그룹)만 다시 매핑할 수 있습니다. WITH LOGIN 절은 Windows 계정을 SQL Server 로그인으로 변경하는 것과 같이 사용자 유형을 변경하는 데는 사용할 수 없습니다. 유일한 예외는 Windows 사용자를 Microsoft Entra 사용자로 변경하는 경우입니다.

참고 항목

Azure SQL Managed Instance에서 Windows 로그인 만들기를 지원하지 않으므로 다음 규칙은 Azure SQL Managed Instance의 Windows 사용자에게는 적용되지 않습니다. WITH LOGIN 옵션은 Microsoft Entra 로그인이 있는 경우에만 사용할 수 있습니다.

다음 조건이 충족되면 사용자 이름이 로그인 이름으로 자동 변경됩니다.

  • 사용자가 Windows 사용자입니다.

  • 이름이 Windows 이름입니다(백슬래시 포함).

  • 새 이름이 지정되지 않았습니다.

  • 현재 이름이 로그인 이름과 다릅니다.

위의 조건을 충족하지 않으면 사용자 이름이 변경되지 않으며 호출자가 NAME 절을 추가로 호출해야 합니다.

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

주의

SQL Server 2005부터 스키마 동작이 변경되었습니다. 이에 따라 스키마가 데이터베이스 사용자와 같다고 가정하는 코드에서 올바른 결과가 반환되지 않을 수 있습니다. 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)를 참조하십시오.

Azure SQL Managed Instance로 마이그레이션된 SQL 온-프레미스의 Windows 사용자에 대한 주의 사항

이러한 설명은 Microsoft Entra ID와 페더레이션 및 동기화된 Windows 사용자로 인증하는 데 적용됩니다.

  • Microsoft Entra ID에 매핑된 Windows 사용자 또는 그룹의 유효성 검사는 마이그레이션 용도로 사용되는 모든 버전의 ALTER USER 구문에서 Graph API를 통해 기본적으로 수행됩니다.
  • 별칭이 지정된 온-프레미스 사용자(원래 Windows 계정에서 다른 이름을 사용)는 별칭이 지정된 이름을 유지합니다.
  • Microsoft Entra 인증의 경우 LOGIN 매개 변수는 Azure SQL Managed Instance에만 적용되며 SQL Database와 함께 사용할 수 없습니다.
  • Microsoft Entra 보안 주체에 대한 로그인을 보려면 다음 명령을 사용합니다.

select * from sys.server_principals.

  • 로그인의 지정된 형식이 E 또는 X인지 확인합니다.
  • 암호 옵션은 Microsoft Entra 사용자에게 사용할 수 없습니다.
  • 모든 마이그레이션 사례에서 Windows 사용자 또는 그룹의 역할 및 권한은 자동으로 새 Microsoft Entra 사용자 또는 그룹으로 전송됩니다.
  • 새 구문 확장인 FROM EXTERNAL PROVIDER 는 WINDOWS 사용자 및 그룹을 SQL 온-프레미스에서 Microsoft Entra 사용자 및 그룹으로 변경하는 데 사용할 수 있습니다. Windows 도메인은 Microsoft Entra ID와 페더레이션되어야 하며 이 확장을 사용하는 경우 모든 Windows 도메인 구성원이 Microsoft Entra ID에 있어야 합니다. FROM EXTERNAL PROVIDER 구문은 Azure SQL Managed Instance에 적용되며 Windows 사용자에게 원래 SQL 인스턴스에 대한 로그인이 없으며 독립 실행형 Microsoft Entra 데이터베이스 사용자에게 매핑되어야 하는 경우에 사용해야 합니다.
  • 이 경우 허용되는 사용자 이름은 다음과 같습니다.
  • Widows 사용자(domain\user).
  • Windows 그룹(MyWidnowsGroup).
  • Windows 별칭(MyWindowsAlias).
  • ALTER 명령의 결과는 이전 userName의 원래 SID를 기반으로 Microsoft Entra ID에 있는 해당 이름으로 이전 userName을 바꿉니다. 변경된 이름이 데이터베이스의 메타데이터에 저장됩니다.
  • (domain\user)가 Microsoft Entra로 바뀝니다 user@domain.com.
  • (domain\MyWidnowsGroup)은 Microsoft Entra 그룹으로 대체됩니다.
  • (MyWindowsAlias)는 변경되지 않은 상태로 유지되지만 이 사용자의 SID는 Microsoft Entra ID에서 확인됩니다.

참고 항목

objectID로 변환된 원래 사용자의 SID를 Microsoft Entra ID에서 찾을 수 없는 경우 ALTER USER 명령이 실패합니다.

  • 변경된 사용자를 보려면 다음 명령을 사용합니다. select * from sys.database_principals
  • 사용자가 지정한 유형 E 또는 X를 확인합니다.
  • WINDOWS 사용자를 Microsoft Entra 사용자로 마이그레이션하는 데 NAME을 사용하는 경우 다음 제한 사항이 적용됩니다.
  • 유효한 LOGIN을 지정해야 합니다.
  • 이름은 Microsoft Entra ID에서 확인되며 다음만 가능합니다.
  • LOGIN의 이름.
  • 별칭 - 이름은 Microsoft Entra ID에 있을 수 없습니다.
  • 다른 모든 경우에는 구문이 실패합니다.

보안

참고

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

사용 권한

사용자의 이름을 변경하려면 ALTER ANY USER 권한이 필요합니다.

사용자의 대상 로그인을 변경하려면 데이터베이스에 대한 CONTROL 권한이 필요합니다.

데이터베이스에 대한 CONTROL 권한이 있는 사용자의 사용자 이름을 변경하려면 데이터베이스에 대한 CONTROL 권한이 필요합니다.

기본 스키마나 언어를 변경하려면 사용자에 대한 ALTER 권한이 필요합니다. 사용자는 자신의 기본 스키마 또는 언어를 변경할 수 있습니다.

예제

모든 예제는 사용자 데이터베이스에서 실행됩니다.

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

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

ALTER USER Mary5 WITH NAME = Mary51;
GO

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

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

ALTER USER Mary51 WITH DEFAULT_SCHEMA = Purchasing;
GO

C. 한 번에 여러 옵션 변경

다음 예에서는 포함된 데이터베이스 사용자에 대해 여러 옵션을 하나의 문에서 변경합니다.

ALTER USER Philip
WITH NAME = Philipe
, DEFAULT_SCHEMA = Development
, PASSWORD = 'W1r77TT98%ab@#' OLD_PASSWORD = 'New Devel0per'
, DEFAULT_LANGUAGE= French ;
GO

D. 마이그레이션 후 데이터베이스의 사용자를 Microsoft Entra 로그인에 매핑

다음 예제에서는 사용자를 Microsoft Entra 사용자에게 westus/joe joe@westus.com다시 매핑합니다. 이 예제는 관리되는 인스턴스에 이미 있는 로그인에 대한 것입니다. Azure SQL Managed Instance로 데이터베이스 마이그레이션을 완료하고 Microsoft Entra 로그인을 사용하여 인증하려는 경우 이 작업을 수행해야 합니다.

ALTER USER [westus/joe] WITH LOGIN = [joe@westus.com]

E. Azure SQL Managed Instance에 로그인하지 않고 데이터베이스의 이전 Windows 사용자를 Microsoft Entra 사용자에 매핑

다음 예제에서는 로그인 없이 사용자를 westus/joe Microsoft Entra 사용자에게 joe@westus.com다시 매핑합니다. 페더레이션된 사용자는 Microsoft Entra ID에 있어야 합니다.

ALTER USER [westus/joe] FROM EXTERNAL PROVIDER

F. 기존 Microsoft Entra 로그인에 사용자 별칭 매핑

다음 예제에서는 사용자 이름 westus\joejoe_alias에 다시 매핑합니다. 이 경우 해당 Microsoft Entra 로그인은 .입니다 joe@westus.com.

ALTER USER [westus/joe] WITH LOGIN = [joe@westus.com], name= joe_alias

G. Azure SQL Managed Instance에서 마이그레이션된 Windows 그룹을 Microsoft Entra 그룹에 매핑

다음 예제에서는 이전 온-프레미스 그룹을 westus\mygroup 관리되는 인스턴스의 Microsoft Entra 그룹에 mygroup 다시 매핑합니다. 그룹은 Microsoft Entra ID에 있어야 합니다.

ALTER USER [westus\mygroup] WITH LOGIN = mygroup

참고 항목

* Azure Synapse
Analytics *

 

Azure Synapse Analytics

구문

-- Syntax for Azure Synapse

ALTER USER userName
 WITH <set_item> [ ,...n ]

<set_item> ::=
 NAME = newUserName
 | LOGIN = loginName
 | DEFAULT_SCHEMA = schema_name
[;]

인수

userName 이 데이터베이스 내에서 사용자를 식별하는 이름을 지정합니다.

LOGIN = loginName 사용자의 SID(보안 식별자)를 다른 로그인의 SID와 일치하도록 변경하여 사용자를 다른 로그인으로 다시 매핑합니다.

ALTER USER 문이 SQL 일괄 처리의 유일한 문인 경우 Azure SQL Database는 WITH LOGIN 절을 지원합니다. ALTER USER 문이 SQL 일괄 처리의 유일한 문이 아니거나 동적 SQL에서 실행되는 경우 WITH LOGIN 절이 지원되지 않습니다.

NAME = newUserName 이 사용자의 새 이름을 지정합니다. newUserName은 현재 데이터베이스에 아직 없는 이름이어야 합니다.

DEFAULT_SCHEMA = { schemaName | NULL } 서버에서 이 사용자에 대한 개체 이름을 확인할 때 첫 번째로 검색할 스키마를 지정합니다. 기본 스키마를 NULL로 설정하면 Windows 그룹에서 기본 스키마가 제거됩니다. Windows 사용자에는 NULL 옵션을 사용할 수 없습니다.

설명

기본 스키마는 서버에서 이 데이터베이스 사용자에 대한 개체 이름을 확인할 때 첫 번째로 검색하는 스키마가 됩니다. 달리 지정하지 않는 한 기본 스키마는 이 데이터베이스 사용자가 만든 개체의 소유자가 됩니다.

사용자에게 기본 스키마가 있는 경우에는 해당 기본 스키마가 사용됩니다. 사용자에게 기본 스키마가 없지만 사용자가 기본 스키마가 있는 그룹의 멤버인 경우에는 그룹의 기본 스키마가 사용됩니다. 사용자에게 기본 스키마가 없고 사용자가 두 개 이상 그룹의 멤버인 경우 principle_id가 가장 낮고 명시적으로 설정된 기본 스키마가 있는 Windows 그룹의 기본 스키마가 사용자의 기본 스키마가 됩니다. 사용자의 기본 스키마를 확인할 수 없으면 dbo 스키마가 사용됩니다.

DEFAULT_SCHEMA는 현재 데이터베이스에 없는 스키마로 설정할 수 있습니다. 따라서 해당 스키마가 생성되기 전에 DEFAULT_SCHEMA를 사용자에게 할당할 수 있습니다.

인증서 또는 비대칭 키에 매핑된 사용자에는 DEFAULT_SCHEMA를 지정할 수 없습니다.

중요

사용자가 sysadmin 고정 서버 역할의 멤버이면 DEFAULT_SCHEMA 값은 무시됩니다. sysadmin 고정 서버 역할의 모든 멤버는 기본 스키마가 dbo입니다.

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

다음 조건이 충족되면 사용자 이름이 로그인 이름으로 자동 변경됩니다.

  • 새 이름이 지정되지 않았습니다.

  • 현재 이름이 로그인 이름과 다릅니다.

위의 조건을 충족하지 않으면 사용자 이름이 변경되지 않으며 호출자가 NAME 절을 추가로 호출해야 합니다.

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

주의

SQL Server 2005부터 스키마 동작이 변경되었습니다. 이에 따라 스키마가 데이터베이스 사용자와 같다고 가정하는 코드에서 올바른 결과가 반환되지 않을 수 있습니다. 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 ANY USER 권한이 필요합니다.

사용자의 대상 로그인을 변경하려면 데이터베이스에 대한 CONTROL 권한이 필요합니다.

데이터베이스에 대한 CONTROL 권한이 있는 사용자의 사용자 이름을 변경하려면 데이터베이스에 대한 CONTROL 권한이 필요합니다.

기본 스키마나 언어를 변경하려면 사용자에 대한 ALTER 권한이 필요합니다. 사용자는 자신의 기본 스키마 또는 언어를 변경할 수 있습니다.

예제

모든 예제는 사용자 데이터베이스에서 실행됩니다.

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

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

ALTER USER Mary5 WITH NAME = Mary51;
GO

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

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

ALTER USER Mary51 WITH DEFAULT_SCHEMA = Purchasing;
GO

참고 항목

* Analytics
플랫폼 시스템(PDW) *

 

분석 플랫폼 시스템

구문

-- Syntax for Analytics Platform System

ALTER USER userName
 WITH <set_item> [ ,...n ]

<set_item> ::=
 NAME = newUserName
 | LOGIN = loginName
 | DEFAULT_SCHEMA = schema_name
[;]

인수

userName 이 데이터베이스 내에서 사용자를 식별하는 이름을 지정합니다.

LOGIN = loginName 사용자의 SID(보안 식별자)를 다른 로그인의 SID와 일치하도록 변경하여 사용자를 다른 로그인으로 다시 매핑합니다.

ALTER USER 문이 SQL 일괄 처리의 유일한 문인 경우 Azure SQL Database는 WITH LOGIN 절을 지원합니다. ALTER USER 문이 SQL 일괄 처리의 유일한 문이 아니거나 동적 SQL에서 실행되는 경우 WITH LOGIN 절이 지원되지 않습니다.

NAME = newUserName 이 사용자의 새 이름을 지정합니다. newUserName은 현재 데이터베이스에 아직 없는 이름이어야 합니다.

DEFAULT_SCHEMA = { schemaName | NULL } 서버에서 이 사용자에 대한 개체 이름을 확인할 때 첫 번째로 검색할 스키마를 지정합니다. 기본 스키마를 NULL로 설정하면 Windows 그룹에서 기본 스키마가 제거됩니다. Windows 사용자에는 NULL 옵션을 사용할 수 없습니다.

설명

기본 스키마는 서버에서 이 데이터베이스 사용자에 대한 개체 이름을 확인할 때 첫 번째로 검색하는 스키마가 됩니다. 달리 지정하지 않는 한 기본 스키마는 이 데이터베이스 사용자가 만든 개체의 소유자가 됩니다.

사용자에게 기본 스키마가 있는 경우에는 해당 기본 스키마가 사용됩니다. 사용자에게 기본 스키마가 없지만 사용자가 기본 스키마가 있는 그룹의 멤버인 경우에는 그룹의 기본 스키마가 사용됩니다. 사용자에게 기본 스키마가 없고 사용자가 두 개 이상 그룹의 멤버인 경우 principle_id가 가장 낮고 명시적으로 설정된 기본 스키마가 있는 Windows 그룹의 기본 스키마가 사용자의 기본 스키마가 됩니다. 사용자의 기본 스키마를 확인할 수 없으면 dbo 스키마가 사용됩니다.

DEFAULT_SCHEMA는 현재 데이터베이스에 없는 스키마로 설정할 수 있습니다. 따라서 해당 스키마가 생성되기 전에 DEFAULT_SCHEMA를 사용자에게 할당할 수 있습니다.

인증서 또는 비대칭 키에 매핑된 사용자에는 DEFAULT_SCHEMA를 지정할 수 없습니다.

중요

사용자가 sysadmin 고정 서버 역할의 멤버이면 DEFAULT_SCHEMA 값은 무시됩니다. sysadmin 고정 서버 역할의 모든 멤버는 기본 스키마가 dbo입니다.

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

다음 조건이 충족되면 사용자 이름이 로그인 이름으로 자동 변경됩니다.

  • 새 이름이 지정되지 않았습니다.

  • 현재 이름이 로그인 이름과 다릅니다.

위의 조건을 충족하지 않으면 사용자 이름이 변경되지 않으며 호출자가 NAME 절을 추가로 호출해야 합니다.

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

주의

SQL Server 2005부터 스키마 동작이 변경되었습니다. 이에 따라 스키마가 데이터베이스 사용자와 같다고 가정하는 코드에서 올바른 결과가 반환되지 않을 수 있습니다. 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 ANY USER 권한이 필요합니다.

사용자의 대상 로그인을 변경하려면 데이터베이스에 대한 CONTROL 권한이 필요합니다.

데이터베이스에 대한 CONTROL 권한이 있는 사용자의 사용자 이름을 변경하려면 데이터베이스에 대한 CONTROL 권한이 필요합니다.

기본 스키마나 언어를 변경하려면 사용자에 대한 ALTER 권한이 필요합니다. 사용자는 자신의 기본 스키마 또는 언어를 변경할 수 있습니다.

예제

모든 예제는 사용자 데이터베이스에서 실행됩니다.

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

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

ALTER USER Mary5 WITH NAME = Mary51;
GO

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

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

ALTER USER Mary51 WITH DEFAULT_SCHEMA = Purchasing;
GO

참고 항목