ALTER USER (Transact-SQL)ALTER USER (Transact-SQL)

データベース ユーザーの名前、またはデータベースの既定のスキーマを変更します。Renames a database user or changes its default schema.

トピック リンク アイコン Transact-SQL 構文表記規則Topic link icon Transact-SQL Syntax Conventions

製品をクリックしてくださいClick a product!

次の行から興味がある製品名をクリックしてみてください。In the following row, click whichever product name you are interested in. この Web ページでは、クリックした製品に合わせて、異なるコンテンツが表示されます。The click displays different content here on this webpage, appropriate for whichever product you click.

* SQL Server *  SQL Server SQL Database
単一データベース/エラスティック プール
SQL Databasesingle database/elastic pool SQL Database
マネージド インスタンス
SQL DatabaseManaged Instance Azure Synapse
Analytics
Azure Synapse
Analytics
Analytics Platform
System (PDW)

Analytics PlatformSystem (PDW) ||||||

 

SQL ServerSQL Server

構文Syntax

-- 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 ]

引数Arguments

userName: データベース内でユーザーを識別する名前を指定します。Specifies the name by which the user is identified inside this database.

LOGIN = loginName: ユーザーのセキュリティ識別子 (SID) を別のログインの SID に一致するように変更することで、ユーザーを別のログインに再マッピングします。Remaps a user to another login by changing the user's Security Identifier (SID) to match the login's SID.

NAME = newUserName: このユーザーの新しい名前を指定します。NAME = newUserName Specifies the new name for this user. newUserName は現在のデータベースに存在しない名前にする必要があります。 newUserName must not already occur in the current database.

DEFAULT_SCHEMA = { schemaName | NULL } このユーザー用のオブジェクトの名前を解決するときに、サーバーで最初に検索されるスキーマを指定します。Specifies the first schema that will be searched by the server when it resolves the names of objects for this user. 既定のスキーマを NULL に設定すると、既定のスキーマが Windows グループから削除されます。Setting the default schema to NULL removes a default schema from a Windows group. Windows ユーザーでは NULL オプションは使用できません。The NULL option cannot be used with a Windows user.

PASSWORD = 'password' 適用対象: SQL Server 2012 (11.x)SQL Server 2012 (11.x) 以降、SQL DatabaseSQL DatabasePASSWORD = 'password' Applies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) and later, SQL DatabaseSQL Database.

変更するユーザーのパスワードを指定します。Specifies the password for the user that is being changed. パスワードでは大文字と小文字が区別されます。Passwords are case-sensitive.

注意

このオプションは、包含ユーザーに対してのみ使用できます。This option is available only for contained users. 詳しくは、「包含データベース」および「sp_migrate_user_to_contained (Transact-SQL)」をご覧ください。For more information, see Contained Databases and sp_migrate_user_to_contained (Transact-SQL).

OLD_PASSWORD = 'oldpassword' 適用対象: SQL Server 2012 (11.x)SQL Server 2012 (11.x) 以降、SQL DatabaseSQL DatabaseOLD_PASSWORD ='oldpassword' Applies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) and later, SQL DatabaseSQL Database.

'password' で置き換える現在のユーザー パスワードです。The current user password that will be replaced by 'password'. パスワードでは大文字と小文字が区別されます。Passwords are case-sensitive. ALTER ANY USER 権限がない場合、パスワードを変更するには、OLD_PASSWORD が必要です。 OLD_PASSWORD is required to change a password, unless you have ALTER ANY USER permission. OLD_PASSWORD を必須にすることで、IMPERSONATION 権限を持つユーザーによるパスワードの変更を防止できます。Requiring OLD_PASSWORD prevents users with IMPERSONATION permission from changing the password.

注意

このオプションは、包含ユーザーに対してのみ使用できます。This option is available only for contained users.

DEFAULT_LANGUAGE = { NONE | <lcid> | <language name> | <language alias> } 適用対象: SQL Server 2012 (11.x)SQL Server 2012 (11.x) 以降。DEFAULT_LANGUAGE { NONE | lcid> | language name> | language alias> }

ユーザーに割り当てる既定の言語を指定します。Specifies a default language to be assigned to the user. このオプションを NONE に設定した場合、既定の言語はデータベースの現在の既定の言語に設定されます。If this option is set to NONE, the default language is set to the current default language of the database. データベースの既定の言語が将来変更されても、ユーザーの既定の言語は変更されません。If the default language of the database is later changed, the default language of the user will remain unchanged. DEFAULT_LANGUAGE には、ローカル ID (LCID)、言語の名前、または言語の別名を指定できます。 DEFAULT_LANGUAGE can be the local ID (lcid), the name of the language, or the language alias.

注意

このオプションは包含データベースでのみ指定でき、また、包含ユーザーに対してのみ指定できます。This option may only be specified in a contained database and only for contained users.

ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ ON | OFF ] 適用対象: SQL Server 2016 (13.x)SQL Server 2016 (13.x) 以降、SQL DatabaseSQL DatabaseALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ ON | OFF ] Applies to: SQL Server 2016 (13.x)SQL Server 2016 (13.x) and later, SQL DatabaseSQL Database.

一括コピー操作でのサーバーの暗号化メタデータ チェックを抑制します。Suppresses cryptographic metadata checks on the server in bulk copy operations. これによりユーザーは、データを暗号化解除することなく、テーブルまたはデータベース間で暗号化データを一括コピーできます。This enables the user to bulk copy encrypted data between tables or databases, without decrypting the data. 既定値は OFF です。The default is OFF.

警告

このオプションを不適切に使用すると、データが破損する場合があります。Improper use of this option can lead to data corruption. 詳細については、「Always Encrypted で保護された機微なデータの移行」を参照してください。For more information, see Migrate Sensitive Data Protected by Always Encrypted.

解説Remarks

既定のスキーマは、このデータベース ユーザー用のオブジェクトの名前を解決するときに、サーバーで最初に検索されるスキーマになります。The default schema will be the first schema that will be searched by the server when it resolves the names of objects for this database user. 特に指定しない限り、このデータベース ユーザーによって作成されたオブジェクトの所有者になるのは、既定のスキーマです。Unless otherwise specified, the default schema will be the owner of objects created by this database user.

ユーザーに既定のスキーマが指定されている場合は、その既定のスキーマが使用されます。If the user has a default schema, that default schema will be used. ユーザーに既定のスキーマが指定されておらず、そのユーザーが所属しているグループに既定のスキーマが指定されている場合は、グループの既定のスキーマが使用されます。If the user doesn't have a default schema, but the user is a member of a group that has a default schema, the default schema of the group will be used. ユーザーに既定のスキーマが指定されておらず、そのユーザーが複数のグループに所属している場合、そのユーザーの既定のスキーマは、最も小さい principle_id と明示的に設定された既定のスキーマを持つ Windows グループのスキーマになります。If the user doesn't have a default schema, and is a member of more than one group, the default schema for the user will be that of the Windows group with the lowest principal_id and an explicitly set default schema. ユーザーに対する既定のスキーマを決定できない場合は、dbo スキーマが使用されます。If no default schema can be determined for a user, the dbo schema will be used.

DEFAULT_SCHEMA には、現在データベースに存在しないスキーマも設定できます。DEFAULT_SCHEMA can be set to a schema that doesn't currently occur in the database. したがって、スキーマが作成される前に DEFAULT_SCHEMA をユーザーに割り当てることができます。Therefore, you can assign a DEFAULT_SCHEMA to a user before that schema is created.

証明書または非対称キーにマップされているユーザーに対して、DEFAULT_SCHEMA を指定することはできません。DEFAULT_SCHEMA can't be specified for a user who is mapped to a certificate, or an asymmetric key.

重要

ユーザーが固定サーバー ロール sysadmin のメンバーである場合、DEFAULT_SCHEMA の値は無視されます。The value of DEFAULT_SCHEMA is ignored if the user is a member of the sysadmin fixed server role. 固定サーバー ロール sysadmin のすべてのメンバーには、dbo の既定のスキーマが割り当てられます。All members of the sysadmin fixed server role have a default schema of dbo.

Windows のログインまたはグループにマップされているユーザーの名前を変更できるのは、新しいユーザー名の SID とデータベースに記録されている SID が一致する場合だけです。You can change the name of a user who is mapped to a Windows login or group only when the SID of the new user name matches the SID that is recorded in the database. この条件により、データベースにおける Windows ログインのなりすましを防止できます。This check helps prevent spoofing of Windows logins in the database.

WITH LOGIN 句を使用すると、ユーザーを別のログインに再マップできます。The WITH LOGIN clause enables the remapping of a user to a different login. ログインのないユーザー、証明書にマップされているユーザー、非対称キーにマップされているユーザーを、この句を使って再マップすることはできません。Users without a login, users mapped to a certificate, or users mapped to an asymmetric key can't be remapped with this clause. SQL ユーザーおよび Windows ユーザー (またはグループ) のみ再マップできます。Only SQL users and Windows users (or groups) can be remapped. WITH LOGIN 句は、Windows アカウントを SQL ServerSQL Server ログインに変更するなど、ユーザーの種類の変更には使用できません。The WITH LOGIN clause can't be used to change the type of user, such as changing a Windows account to a SQL ServerSQL Server login.

次の条件を満たす場合、ユーザーの名前はログイン名に自動的に変更されます。The name of the user will be automatically renamed to the login name if the following conditions are true.

  • ユーザーが Windows ユーザーである。The user is a Windows user.

  • 名前が Windows 名である (円記号を含む)。The name is a Windows name (contains a backslash).

  • 新しい名前が指定されていない。No new name was specified.

  • 現在の名前がログイン名とは異なる。The current name differs from the login name.

そうでない場合は、呼び出し元が NAME 句を追加で呼び出さない限り、ユーザーの名前は変更されません。Otherwise, the user won't be renamed unless the caller additionally invokes the NAME clause.

SQL ServerSQL Server のログイン、証明書、非対称キーにマップされているユーザーの名前には、円記号 (\) を含めることはできません。The name of a user mapped to a SQL ServerSQL Server login, a certificate, or an asymmetric key can't contain the backslash character (\).

注意事項

SQL Server 2005 からスキーマの動作が変更されました。Beginning with SQL Server 2005, the behavior of schemas changed. その結果、スキーマがデータベース ユーザーと同じであると想定しているコードでは、正しい結果が返されない場合があります。As a result, code that assumes that schemas are equivalent to database users may no longer return correct results. 以下の DDL ステートメントが使用されているデータベースでは、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。Old catalog views, including sysobjects, should not be used in a database in which any of the following DDL statements have ever been used: 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. そのようなデータベースでは、代わりに新しいカタログ ビューを使用してください。In such databases you must instead use the new catalog views. 新しいカタログ ビューでは、SQL Server 2005 で導入されたプリンシパルとスキーマの分離が考慮されます。The new catalog views take into account the separation of principals and schemas that was introduced in SQL Server 2005. カタログ ビューの詳細については、「カタログ ビュー (Transact-SQL)」を参照してください。For more information about catalog views, see Catalog Views (Transact-SQL).

SecuritySecurity

注意

ALTER ANY USER 権限を持つユーザーは、任意のユーザーの既定のスキーマを変更できます。A user who has ALTER ANY USER permission can change the default schema of any user. 変更されたスキーマを所有するユーザーは、知らずに間違ったテーブルからデータを選択したり、間違ったスキーマからコードを実行する可能性があります。A user who has an altered schema might unknowingly select data from the wrong table or execute code from the wrong schema.

アクセス許可Permissions

ユーザーの名前を変更するには、ALTER ANY USER 権限が必要です。To change the name of a user requires the ALTER ANY USER permission.

ターゲットを変更するには、ユーザーのログインにデータベースの CONTROL 権限が必要です。To change the target login of a user requires the CONTROL permission on the database.

データベースに対する CONTROL 権限を持つユーザーのユーザー名を変更するには、データベースに対する CONTROL 権限が必要です。To change the user name of a user having CONTROL permission on the database requires the CONTROL permission on the database.

既定のスキーマまたは言語を変更するには、ユーザーに対する ALTER 権限が必要です。To change the default schema or language requires ALTER permission on the user. ユーザーは自分が所有する既定のスキーマまたは言語を変更できます。Users can change their own default schema or language.

Examples

すべての例は、ユーザー データベースで実行されます。All examples are executed in a user database.

A.A. データベース ユーザーの名前を変更するChanging the name of a database user

次の例では、データベース ユーザー Mary5 の名前を Mary51 に変更します。The following example changes the name of the database user Mary5 to Mary51.

ALTER USER Mary5 WITH NAME = Mary51;
GO

B.B. ユーザーの既定のスキーマを変更するChanging the default schema of a user

次の例では、ユーザー Mary51 の既定のスキーマを Purchasing に変更します。The following example changes the default schema of the user Mary51 to Purchasing.

ALTER USER Mary51 WITH DEFAULT_SCHEMA = Purchasing;
GO

C.C. 複数のオプションを一度に変更するChanging several options at once

次の例では、包含データベース ユーザーに対する複数のオプションを 1 つのステートメントで変更します。The following example changes several options for a contained database user in one statement.

適用対象: SQL Server 2012 (11.x)SQL Server 2012 (11.x) 以降。 Applies to: and later,

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

参照See also

SQL ServerSQL Server * SQL Database
単一データベース/エラスティック プール *

SQL Databasesingle database/elastic pool |SQL Database
マネージド インスタンス
SQL DatabaseManaged Instance|Azure Synapse
Analytics
Azure Synapse
Analytics
|Analytics Platform
System (PDW)

Analytics PlatformSystem (PDW)

 

Azure SQL Database 単一データベース/エラスティック プールAzure SQL Database single database/elastic pool

構文Syntax

-- 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

引数Arguments

userName: データベース内でユーザーを識別する名前を指定します。Specifies the name by which the user is identified inside this database.

LOGIN = loginName: ユーザーのセキュリティ識別子 (SID) を別のログインの SID に一致するように変更することで、ユーザーを別のログインに再マッピングします。Remaps a user to another login by changing the user's Security Identifier (SID) to match the login's SID.

ALTER USER ステートメントが SQL のバッチ内の唯一のステートメントである場合、Azure SQL Database では WITH LOGIN 句がサポートされます。If the ALTER USER statement is the only statement in a SQL batch, Azure SQL Database supports the WITH LOGIN clause. ALTER USER ステートメントが SQL バッチ内の唯一のステートメントではない場合、または動的 SQL で実行されている場合、WITH LOGIN 句はサポートされません。If the ALTER USER statement isn't the only statement in a SQL batch or is executed in dynamic SQL, the WITH LOGIN clause isn't supported.

NAME = newUserName: このユーザーの新しい名前を指定します。NAME = newUserName Specifies the new name for this user. newUserName は現在のデータベースに存在しない名前にする必要があります。 newUserName must not already occur in the current database.

DEFAULT_SCHEMA = { schemaName | NULL } このユーザー用のオブジェクトの名前を解決するときに、サーバーで最初に検索されるスキーマを指定します。Specifies the first schema that will be searched by the server when it resolves the names of objects for this user. 既定のスキーマを NULL に設定すると、既定のスキーマが Windows グループから削除されます。Setting the default schema to NULL removes a default schema from a Windows group. Windows ユーザーでは、NULL オプションは使用できません。The NULL option can't be used with a Windows user.

PASSWORD = 'password' 適用対象: SQL Server 2012 (11.x)SQL Server 2012 (11.x) 以降、SQL DatabaseSQL DatabasePASSWORD = 'password' Applies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) and later, SQL DatabaseSQL Database.

変更するユーザーのパスワードを指定します。Specifies the password for the user that is being changed. パスワードでは大文字と小文字が区別されます。Passwords are case-sensitive.

注意

このオプションは、包含ユーザーに対してのみ使用できます。This option is available only for contained users. 詳しくは、「包含データベース」および「sp_migrate_user_to_contained (Transact-SQL)」をご覧ください。For more information, see Contained Databases and sp_migrate_user_to_contained (Transact-SQL).

OLD_PASSWORD = 'oldpassword' 適用対象: SQL Server 2012 (11.x)SQL Server 2012 (11.x) 以降、SQL DatabaseSQL DatabaseOLD_PASSWORD ='oldpassword' Applies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) and later, SQL DatabaseSQL Database.

'password' で置き換える現在のユーザー パスワードです。The current user password that will be replaced by 'password'. パスワードでは大文字と小文字が区別されます。Passwords are case-sensitive. ALTER ANY USER 権限がない場合、パスワードを変更するには、OLD_PASSWORD が必要です。 OLD_PASSWORD is required to change a password, unless you have ALTER ANY USER permission. OLD_PASSWORD を必須にすることで、IMPERSONATION 権限を持つユーザーによるパスワードの変更を防止できます。Requiring OLD_PASSWORD prevents users with IMPERSONATION permission from changing the password.

注意

このオプションは、包含ユーザーに対してのみ使用できます。This option is available only for contained users.

ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ ON | OFF ] 適用対象: SQL Server 2016 (13.x)SQL Server 2016 (13.x) 以降、SQL DatabaseSQL DatabaseALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ ON | OFF ] Applies to: SQL Server 2016 (13.x)SQL Server 2016 (13.x) and later, SQL DatabaseSQL Database.

一括コピー操作でのサーバーの暗号化メタデータ チェックを抑制します。Suppresses cryptographic metadata checks on the server in bulk copy operations. これによりユーザーは、データを暗号化解除することなく、テーブルまたはデータベース間で暗号化データを一括コピーできます。This enables the user to bulk copy encrypted data between tables or databases, without decrypting the data. 既定値は OFF です。The default is OFF.

警告

このオプションを不適切に使用すると、データが破損する場合があります。Improper use of this option can lead to data corruption. 詳細については、「Always Encrypted で保護された機微なデータの移行」を参照してください。For more information, see Migrate Sensitive Data Protected by Always Encrypted.

解説Remarks

既定のスキーマは、このデータベース ユーザー用のオブジェクトの名前を解決するときに、サーバーで最初に検索されるスキーマになります。The default schema will be the first schema that will be searched by the server when it resolves the names of objects for this database user. 特に指定しない限り、このデータベース ユーザーによって作成されたオブジェクトの所有者になるのは、既定のスキーマです。Unless otherwise specified, the default schema will be the owner of objects created by this database user.

ユーザーに既定のスキーマが設定されている場合は、その既定のスキーマが使用されます。If the user has a default schema, that default schema will used. ユーザーに既定のスキーマが指定されておらず、そのユーザーが所属しているグループに既定のスキーマが指定されている場合は、グループの既定のスキーマが使用されます。If the user doesn't have a default schema, but the user is a member of a group that has a default schema, the default schema of the group will be used. ユーザーに既定のスキーマが指定されておらず、そのユーザーが複数のグループに所属している場合、そのユーザーの既定のスキーマは、最も小さい principle_id と明示的に設定された既定のスキーマを持つ Windows グループのスキーマになります。If the user doesn't have a default schema, and is a member of more than one group, the default schema for the user will be that of the Windows group with the lowest principal_id and an explicitly set default schema. ユーザーに対する既定のスキーマを決定できない場合は、dbo スキーマが使用されます。If no default schema can be determined for a user, the dbo schema will be used.

DEFAULT_SCHEMA には、現在データベースに存在しないスキーマも設定できます。DEFAULT_SCHEMA can be set to a schema that doesn't currently occur in the database. したがって、スキーマが作成される前に DEFAULT_SCHEMA をユーザーに割り当てることができます。Therefore, you can assign a DEFAULT_SCHEMA to a user before that schema is created.

証明書または非対称キーにマップされているユーザーに対して、DEFAULT_SCHEMA を指定することはできません。DEFAULT_SCHEMA can't be specified for a user who is mapped to a certificate, or an asymmetric key.

重要

ユーザーが固定サーバー ロール sysadmin のメンバーである場合、DEFAULT_SCHEMA の値は無視されます。The value of DEFAULT_SCHEMA is ignored if the user is a member of the sysadmin fixed server role. 固定サーバー ロール sysadmin のすべてのメンバーには、dbo の既定のスキーマが割り当てられます。All members of the sysadmin fixed server role have a default schema of dbo.

Windows のログインまたはグループにマップされているユーザーの名前を変更できるのは、新しいユーザー名の SID とデータベースに記録されている SID が一致する場合だけです。You can change the name of a user who is mapped to a Windows login or group only when the SID of the new user name matches the SID that is recorded in the database. この条件により、データベースにおける Windows ログインのなりすましを防止できます。This check helps prevent spoofing of Windows logins in the database.

WITH LOGIN 句を使用すると、ユーザーを別のログインに再マップできます。The WITH LOGIN clause enables the remapping of a user to a different login. ログインのないユーザー、証明書にマップされているユーザー、非対称キーにマップされているユーザーを、この句を使って再マップすることはできません。Users without a login, users mapped to a certificate, or users mapped to an asymmetric key can't be remapped with this clause. SQL ユーザーおよび Windows ユーザー (またはグループ) のみ再マップできます。Only SQL users and Windows users (or groups) can be remapped. WITH LOGIN 句は、Windows アカウントを SQL ServerSQL Server ログインに変更するなど、ユーザーの種類の変更には使用できません。The WITH LOGIN clause can't be used to change the type of user, such as changing a Windows account to a SQL ServerSQL Server login.

次の条件を満たす場合、ユーザーの名前はログイン名に自動的に変更されます。The name of the user will be automatically renamed to the login name if the following conditions are true.

  • ユーザーが Windows ユーザーである。The user is a Windows user.

  • 名前が Windows 名である (円記号を含む)。The name is a Windows name (contains a backslash).

  • 新しい名前が指定されていない。No new name was specified.

  • 現在の名前がログイン名とは異なる。The current name differs from the login name.

そうでない場合は、呼び出し元が NAME 句を追加で呼び出さない限り、ユーザーの名前は変更されません。Otherwise, the user won't be renamed unless the caller additionally invokes the NAME clause.

SQL ServerSQL Server のログイン、証明書、非対称キーにマップされているユーザーの名前には、円記号 (\) を含めることはできません。The name of a user mapped to a SQL ServerSQL Server login, a certificate, or an asymmetric key can't contain the backslash character (\).

注意事項

SQL Server 2005 からスキーマの動作が変更されました。Beginning with SQL Server 2005, the behavior of schemas changed. その結果、スキーマがデータベース ユーザーと同じであると想定しているコードでは、正しい結果が返されない場合があります。As a result, code that assumes that schemas are equivalent to database users may no longer return correct results. 以下の DDL ステートメントが使用されているデータベースでは、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。Old catalog views, including sysobjects, should not be used in a database in which any of the following DDL statements have ever been used: 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. そのようなデータベースでは、代わりに新しいカタログ ビューを使用してください。In such databases you must instead use the new catalog views. 新しいカタログ ビューでは、SQL Server 2005 で導入されたプリンシパルとスキーマの分離が考慮されます。The new catalog views take into account the separation of principals and schemas that was introduced in SQL Server 2005. カタログ ビューの詳細については、「カタログ ビュー (Transact-SQL)」を参照してください。For more information about catalog views, see Catalog Views (Transact-SQL).

SecuritySecurity

注意

ALTER ANY USER 権限を持つユーザーは、任意のユーザーの既定のスキーマを変更できます。A user who has ALTER ANY USER permission can change the default schema of any user. 変更されたスキーマを所有するユーザーは、知らずに間違ったテーブルからデータを選択したり、間違ったスキーマからコードを実行する可能性があります。A user who has an altered schema might unknowingly select data from the wrong table or execute code from the wrong schema.

アクセス許可Permissions

ユーザーの名前を変更するには、ALTER ANY USER 権限が必要です。To change the name of a user requires the ALTER ANY USER permission.

ターゲットを変更するには、ユーザーのログインにデータベースの CONTROL 権限が必要です。To change the target login of a user requires the CONTROL permission on the database.

データベースに対する CONTROL 権限を持つユーザーのユーザー名を変更するには、データベースに対する CONTROL 権限が必要です。To change the user name of a user having CONTROL permission on the database requires the CONTROL permission on the database.

既定のスキーマまたは言語を変更するには、ユーザーに対する ALTER 権限が必要です。To change the default schema or language requires ALTER permission on the user. ユーザーは自分が所有する既定のスキーマまたは言語を変更できます。Users can change their own default schema or language.

Examples

すべての例は、ユーザー データベースで実行されます。All examples are executed in a user database.

A.A. データベース ユーザーの名前を変更するChanging the name of a database user

次の例では、データベース ユーザー Mary5 の名前を Mary51 に変更します。The following example changes the name of the database user Mary5 to Mary51.

ALTER USER Mary5 WITH NAME = Mary51;
GO

B.B. ユーザーの既定のスキーマを変更するChanging the default schema of a user

次の例では、ユーザー Mary51 の既定のスキーマを Purchasing に変更します。The following example changes the default schema of the user Mary51 to Purchasing.

ALTER USER Mary51 WITH DEFAULT_SCHEMA = Purchasing;
GO

C.C. 複数のオプションを一度に変更するChanging several options at once

次の例では、包含データベース ユーザーに対する複数のオプションを 1 つのステートメントで変更します。The following example changes several options for a contained database user in one statement.

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

参照See also

SQL ServerSQL Server SQL Database
単一データベース/エラスティック プール

SQL Databasesingle database/elastic pool |* SQL Database
マネージド インスタンス *
SQL DatabaseManaged Instance|Azure Synapse
Analytics
Azure Synapse
Analytics
|Analytics Platform
System (PDW)

Analytics PlatformSystem (PDW)

 

Azure SQL Database マネージド インスタンスAzure SQL Database managed instance

構文Syntax

重要

Azure AD ログインのユーザーに適用するとき、Azure SQL Database マネージド インスタンスでは、オプション DEFAULT_SCHEMA = { schemaName | NULL }DEFAULT_LANGUAGE = { NONE | lcid | language name | language alias } のみサポートされますOnly the following options are supported for Azure SQL Database managed instance when applying to users with Azure AD logins: DEFAULT_SCHEMA = { schemaName | NULL } and DEFAULT_LANGUAGE = { NONE | lcid | language name | language alias }

マネージド インスタンスに移行されたデータベース内のユーザーを再マップするために、新しい構文拡張機能が追加されました。There is a new syntax extension that was added to help remap users in a database that was migrated to managed instance. ALTER USER 構文を使用すると、Azure AD を使ってフェデレーションおよび同期されたドメインのデータベース ユーザーを、Azure AD ログインにマップできます。The ALTER USER syntax helps map database users in a federated and synchronized domain with Azure AD, to Azure AD logins.

-- Syntax for Azure SQL Database 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> }

引数Arguments

userName: データベース内でユーザーを識別する名前を指定します。Specifies the name by which the user is identified inside this database.

LOGIN = loginName: ユーザーのセキュリティ識別子 (SID) を別のログインの SID に一致するように変更することで、ユーザーを別のログインに再マッピングします。Remaps a user to another login by changing the user's Security Identifier (SID) to match the login's SID.

ALTER USER ステートメントが SQL のバッチ内の唯一のステートメントである場合、Azure SQL Database では WITH LOGIN 句がサポートされます。If the ALTER USER statement is the only statement in a SQL batch, Azure SQL Database supports the WITH LOGIN clause. ALTER USER ステートメントが SQL バッチ内の唯一のステートメントではない場合、または動的 SQL で実行されている場合、WITH LOGIN 句はサポートされません。If the ALTER USER statement isn't the only statement in a SQL batch or is executed in dynamic SQL, the WITH LOGIN clause isn't supported.

NAME = newUserName: このユーザーの新しい名前を指定します。NAME = newUserName Specifies the new name for this user. newUserName は現在のデータベースに存在しない名前にする必要があります。 newUserName must not already occur in the current database.

DEFAULT_SCHEMA = { schemaName | NULL } このユーザー用のオブジェクトの名前を解決するときに、サーバーで最初に検索されるスキーマを指定します。Specifies the first schema that will be searched by the server when it resolves the names of objects for this user. 既定のスキーマを NULL に設定すると、既定のスキーマが Windows グループから削除されます。Setting the default schema to NULL removes a default schema from a Windows group. Windows ユーザーでは、NULL オプションは使用できません。The NULL option can't be used with a Windows user.

PASSWORD = 'password'PASSWORD ='password*'

変更するユーザーのパスワードを指定します。Specifies the password for the user that is being changed. パスワードでは大文字と小文字が区別されます。Passwords are case-sensitive.

注意

このオプションは、包含ユーザーに対してのみ使用できます。This option is available only for contained users. 詳しくは、「包含データベース」および「sp_migrate_user_to_contained (Transact-SQL)」をご覧ください。For more information, see Contained Databases and sp_migrate_user_to_contained (Transact-SQL).

OLD_PASSWORD = 'oldpassword'OLD_PASSWORD 'oldpassword'

'password' で置き換える現在のユーザー パスワードです。The current user password that will be replaced by 'password'. パスワードでは大文字と小文字が区別されます。Passwords are case-sensitive. ALTER ANY USER 権限がない場合、パスワードを変更するには、OLD_PASSWORD が必要です。 OLD_PASSWORD is required to change a password, unless you have ALTER ANY USER permission. OLD_PASSWORD を必須にすることで、IMPERSONATION 権限を持つユーザーによるパスワードの変更を防止できます。Requiring OLD_PASSWORD prevents users with IMPERSONATION permission from changing the password.

注意

このオプションは、包含ユーザーに対してのみ使用できます。This option is available only for contained users.

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

ユーザーに割り当てる既定の言語を指定します。Specifies a default language to be assigned to the user. このオプションを NONE に設定した場合、既定の言語はデータベースの現在の既定の言語に設定されます。If this option is set to NONE, the default language is set to the current default language of the database. データベースの既定の言語が将来変更されても、ユーザーの既定の言語は変更されません。If the default language of the database is later changed, the default language of the user will remain unchanged. DEFAULT_LANGUAGE には、ローカル ID (LCID)、言語の名前、または言語の別名を指定できます。 DEFAULT_LANGUAGE can be the local ID (lcid), the name of the language, or the language alias.

注意

このオプションは包含データベースでのみ指定でき、また、包含ユーザーに対してのみ指定できます。This option may only be specified in a contained database and only for contained users.

ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ ON | OFF ]ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ ON | OFF ]

一括コピー操作でのサーバーの暗号化メタデータ チェックを抑制します。Suppresses cryptographic metadata checks on the server in bulk copy operations. これによりユーザーは、データを暗号化解除することなく、テーブルまたはデータベース間で暗号化データを一括コピーできます。This enables the user to bulk copy encrypted data between tables or databases, without decrypting the data. 既定値は OFF です。The default is OFF.

警告

このオプションを不適切に使用すると、データが破損する場合があります。Improper use of this option can lead to data corruption. 詳細については、「Always Encrypted で保護された機微なデータの移行」を参照してください。For more information, see Migrate Sensitive Data Protected by Always Encrypted.

解説Remarks

既定のスキーマは、このデータベース ユーザー用のオブジェクトの名前を解決するときに、サーバーで最初に検索されるスキーマになります。The default schema will be the first schema that will be searched by the server when it resolves the names of objects for this database user. 特に指定しない限り、このデータベース ユーザーによって作成されたオブジェクトの所有者になるのは、既定のスキーマです。Unless otherwise specified, the default schema will be the owner of objects created by this database user.

ユーザーに既定のスキーマが設定されている場合は、その既定のスキーマが使用されます。If the user has a default schema, that default schema will used. ユーザーに既定のスキーマが指定されておらず、そのユーザーが所属しているグループに既定のスキーマが指定されている場合は、グループの既定のスキーマが使用されます。If the user doesn't have a default schema, but the user is a member of a group that has a default schema, the default schema of the group will be used. ユーザーに既定のスキーマが指定されておらず、そのユーザーが複数のグループに所属している場合、そのユーザーの既定のスキーマは、最も小さい principle_id と明示的に設定された既定のスキーマを持つ Windows グループのスキーマになります。If the user doesn't have a default schema, and is a member of more than one group, the default schema for the user will be that of the Windows group with the lowest principal_id and an explicitly set default schema. ユーザーに対する既定のスキーマを決定できない場合は、dbo スキーマが使用されます。If no default schema can be determined for a user, the dbo schema will be used.

DEFAULT_SCHEMA には、現在データベースに存在しないスキーマも設定できます。DEFAULT_SCHEMA can be set to a schema that doesn't currently occur in the database. したがって、スキーマが作成される前に DEFAULT_SCHEMA をユーザーに割り当てることができます。Therefore, you can assign a DEFAULT_SCHEMA to a user before that schema is created.

証明書または非対称キーにマップされているユーザーに対して、DEFAULT_SCHEMA を指定することはできません。DEFAULT_SCHEMA can't be specified for a user who is mapped to a certificate, or an asymmetric key.

重要

ユーザーが固定サーバー ロール sysadmin のメンバーである場合、DEFAULT_SCHEMA の値は無視されます。The value of DEFAULT_SCHEMA is ignored if the user is a member of the sysadmin fixed server role. 固定サーバー ロール sysadmin のすべてのメンバーには、dbo の既定のスキーマが割り当てられます。All members of the sysadmin fixed server role have a default schema of dbo.

Windows のログインまたはグループにマップされているユーザーの名前を変更できるのは、新しいユーザー名の SID とデータベースに記録されている SID が一致する場合だけです。You can change the name of a user who is mapped to a Windows login or group only when the SID of the new user name matches the SID that is recorded in the database. この条件により、データベースにおける Windows ログインのなりすましを防止できます。This check helps prevent spoofing of Windows logins in the database.

WITH LOGIN 句を使用すると、ユーザーを別のログインに再マップできます。The WITH LOGIN clause enables the remapping of a user to a different login. ログインのないユーザー、証明書にマップされているユーザー、非対称キーにマップされているユーザーを、この句を使って再マップすることはできません。Users without a login, users mapped to a certificate, or users mapped to an asymmetric key can't be remapped with this clause. SQL ユーザーおよび Windows ユーザー (またはグループ) のみ再マップできます。Only SQL users and Windows users (or groups) can be remapped. WITH LOGIN 句は、Windows アカウントを SQL ServerSQL Server ログインに変更するなど、ユーザーの種類の変更には使用できません。The WITH LOGIN clause can't be used to change the type of user, such as changing a Windows account to a SQL ServerSQL Server login. 唯一の例外は、Windows ユーザーを Azure AD ユーザーに変更する場合です。The only exception is when changing a Windows user to an Azure AD user.

注意

以下の規則は、マネージド インスタンス上の Windows ユーザーには適用されません。マネージド インスタンスでの Windows ログインの作成はサポートされていないためです。The following rules do not apply to Windows users on managed instance as we do not support creating Windows logins on managed instance. WITH LOGIN オプションは、Azure AD ログインが存在する場合にのみ使用できます。The WITH LOGIN option can only be used if Azure AD logins are present.

次の条件を満たす場合、ユーザーの名前はログイン名に自動的に変更されます。The name of the user will be automatically renamed to the login name if the following conditions are true.

  • ユーザーが Windows ユーザーである。The user is a Windows user.

  • 名前が Windows 名である (円記号を含む)。The name is a Windows name (contains a backslash).

  • 新しい名前が指定されていない。No new name was specified.

  • 現在の名前がログイン名とは異なる。The current name differs from the login name.

そうでない場合は、呼び出し元が NAME 句を追加で呼び出さない限り、ユーザーの名前は変更されません。Otherwise, the user won't be renamed unless the caller additionally invokes the NAME clause.

SQL ServerSQL Server のログイン、証明書、非対称キーにマップされているユーザーの名前には、円記号 (\) を含めることはできません。The name of a user mapped to a SQL ServerSQL Server login, a certificate, or an asymmetric key can't contain the backslash character (\).

注意事項

SQL Server 2005 からスキーマの動作が変更されました。Beginning with SQL Server 2005, the behavior of schemas changed. その結果、スキーマがデータベース ユーザーと同じであると想定しているコードでは、正しい結果が返されない場合があります。As a result, code that assumes that schemas are equivalent to database users may no longer return correct results. 以下の DDL ステートメントが使用されているデータベースでは、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。Old catalog views, including sysobjects, should not be used in a database in which any of the following DDL statements have ever been used: 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. そのようなデータベースでは、代わりに新しいカタログ ビューを使用してください。In such databases you must instead use the new catalog views. 新しいカタログ ビューでは、SQL Server 2005 で導入されたプリンシパルとスキーマの分離が考慮されます。The new catalog views take into account the separation of principals and schemas that was introduced in SQL Server 2005. カタログ ビューの詳細については、「カタログ ビュー (Transact-SQL)」を参照してください。For more information about catalog views, see Catalog Views (Transact-SQL).

マネージド インスタンスに移行された SQL オンプレミスの Windows ユーザーに関する解説Remarks for Windows users in SQL on-premises migrated to managed instance

次の解説は、Azure AD とのフェデレーションおよび同期を行った Windows ユーザーとしての認証に適用されます。These remarks apply to authenticating as Windows users that have been federated and synchronized with Azure AD.

注意

作成後にマネージド インスタンス機能の Azure AD 管理者が変更されました。The Azure AD admin for managed instance functionality after creation has changed. 詳しくは、「マネージド インスタンス用の新しい Azure AD 管理機能」をご覧ください。For more information, see New Azure AD admin functionality for MI.

  • Azure AD にマップされる Windows ユーザーまたはグループの検証は、既定では、移行の目的で使用されるすべてのバージョンの ALTER USER 構文で、Graph API によって実行されます。Validation of Windows users or groups that are mapped to Azure AD is done by default through Graph API in all versions of the ALTER USER syntax used for migration purpose.
  • 別名が設定された (元の Windows アカウントとは異なる名前を使用する) オンプレミスのユーザーは、別名が設定された名前を保持します。On-premises users that were aliased (use a different name from the original Windows account) will keep the aliased name.
  • Azure AD 認証では、LOGIN パラメーターはマネージド インスタンスにのみ適用され、SQL DB では使用できません。For Azure AD authentication, the LOGIN parameter applies only to managed instance and can't be used with SQL DB.
  • Azure AD プリンシパルのログインを表示するには、次のコマンドを使います: select * from sys.server_principalsTo view logins for Azure AD Principals, use the following command: select * from sys.server_principals.
  • ログインの指定された種類が E または X であることを確認します。Check the login's indicated type is E or X.
  • PASSWORD オプションは、Azure AD ユーザーには使用できません。PASSWORD option can't be used for Azure AD users.
  • 移行のあらゆるケースにおいて、Windows ユーザーまたはグループのロールとアクセス許可は、新しい Azure AD ユーザーまたはグループに自動的に転送されます。In all migration cases, the roles and permissions of Windows users or groups will automatically be transferred to the new Azure AD users or groups.
  • Windows ユーザーおよびグループを、SQL オンプレミスから Azure AD ユーザーおよびグループに変更するために、新しい構文拡張機能 FROM EXTERNAL PROVIDER を使用できます。A new syntax extension, FROM EXTERNAL PROVIDER is available for altering Windows users and groups from SQL on-premises to Azure AD users and groups. この拡張機能を使用する場合、Windows ドメインが Azure AD とフェデレーションされていて、かつすべての Windows ドメイン メンバーが Azure AD 内に存在している必要があります。The Windows domain must be federated with Azure AD and all Windows domain members must exist in Azure AD when using this extension. FROM EXTERNAL PROVIDER 構文はマネージド インスタンスに適用されます。これは、Windows ユーザーが元の SQL インスタンスに対するログインを持っておらず、スタンドアロンの Azure AD データベース ユーザーにマップする必要がある場合に使用する必要があります。The FROM EXTERNAL PROVIDER syntax applies to managed instance and should be used in case Windows users do not have logins on the original SQL instance and need to be mapped to standalone Azure AD database users.
  • この場合、許可されるユーザー名は次のようになります。In this case, the allowable userName can be:
  • Widows ユーザー (domain\user)。A Widows user (domain\user).
  • Windows グループ (MyWidnowsGroup)。A Windows group (MyWidnowsGroup).
  • Windows の別名 (MyWindowsAlias)。A Windows alias (MyWindowsAlias).
  • ALTER コマンドの結果によって、古い userName が、古い userName の元の SID に基づいて Azure AD で検索された対応する名前に置き換えられます。The outcome of the ALTER command replaces the old userName with the corresponding name that is found in Azure AD based on the original SID of the old userName. 変更された名前は置き換えられ、データベースのメタデータに格納されます。The altered name is replaced and stored in the metadata of the database:
  • (domain\user) は、Azure AD user@domain.com に置き換えられます。(domain\user) will be replaced with Azure AD user@domain.com.
  • (domain\MyWidnowsGroup) は、Azure AD グループに置き換えられます。(domain\MyWidnowsGroup) will be replaced with Azure AD group.
  • (MyWindowsAlias) は変更されませんが、このユーザーの SID は Azure AD でチェックされます。(MyWindowsAlias) will remain unchanged but the SID of this user will be checked in Azure AD.

注意

objectID に変換された元のユーザーの SID が Azure AD 内に見つからない場合、ALTER USER コマンドは失敗します。If the SID of the original user converted to objectID cannot be found in Azure AD, the ALTER USER command will fail.

  • 変更されたユーザーを表示するには、次のコマンドを使います: select * from sys.database_principalsTo view altered users, use the following command: select * from sys.database_principals
  • ユーザーの指定された種類 E または X を確認します。Check the user's indicated type E or X.
  • Windows ユーザーを Azure AD ユーザーに移行するために NAME を使用する場合は、次の制限が適用されます。When NAME is used to migrate Windows users to Azure AD users, the following restrictions apply:
  • 有効な LOGIN を指定する必要があります。A valid LOGIN must be specified.
  • NAME は Azure AD でチェックされ、次のいずれかである必要があります。The NAME will be checked in Azure AD and can only be:
  • LOGIN の名前。The name of the LOGIN.
  • 別名 - 名前は Azure AD に存在できません。An alias - the name can't exist in Azure AD.
  • その他のすべての場合、この構文は失敗します。In all other cases, the syntax will fail.

SecuritySecurity

注意

ALTER ANY USER 権限を持つユーザーは、任意のユーザーの既定のスキーマを変更できます。A user who has ALTER ANY USER permission can change the default schema of any user. 変更されたスキーマを所有するユーザーは、知らずに間違ったテーブルからデータを選択したり、間違ったスキーマからコードを実行する可能性があります。A user who has an altered schema might unknowingly select data from the wrong table or execute code from the wrong schema.

アクセス許可Permissions

ユーザーの名前を変更するには、ALTER ANY USER 権限が必要です。To change the name of a user requires the ALTER ANY USER permission.

ターゲットを変更するには、ユーザーのログインにデータベースの CONTROL 権限が必要です。To change the target login of a user requires the CONTROL permission on the database.

データベースに対する CONTROL 権限を持つユーザーのユーザー名を変更するには、データベースに対する CONTROL 権限が必要です。To change the user name of a user having CONTROL permission on the database requires the CONTROL permission on the database.

既定のスキーマまたは言語を変更するには、ユーザーに対する ALTER 権限が必要です。To change the default schema or language requires ALTER permission on the user. ユーザーは自分が所有する既定のスキーマまたは言語を変更できます。Users can change their own default schema or language.

Examples

すべての例は、ユーザー データベースで実行されます。All examples are executed in a user database.

A.A. データベース ユーザーの名前を変更するChanging the name of a database user

次の例では、データベース ユーザー Mary5 の名前を Mary51 に変更します。The following example changes the name of the database user Mary5 to Mary51.

ALTER USER Mary5 WITH NAME = Mary51;
GO

B.B. ユーザーの既定のスキーマを変更するChanging the default schema of a user

次の例では、ユーザー Mary51 の既定のスキーマを Purchasing に変更します。The following example changes the default schema of the user Mary51 to Purchasing.

ALTER USER Mary51 WITH DEFAULT_SCHEMA = Purchasing;
GO

C.C. 複数のオプションを一度に変更するChanging several options at once

次の例では、包含データベース ユーザーに対する複数のオプションを 1 つのステートメントで変更します。The following example changes several options for a contained database user in one statement.

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

D.D. 移行後にデータベース内のユーザーを Azure AD ログインにマップするMap the user in the database to an Azure AD login after migration

次の例では、ユーザーが再マップされ、westus/joe が Azure AD ユーザー joe@westus.com にマップされます。The following example remaps the user, westus/joe to an Azure AD user, joe@westus.com. この例は、マネージド インスタンスに既に存在しているログインを対象としています。This example is for logins that already exist in the managed instance. これは、データベースをマネージド インスタンスに移行した後、Azure AD ログインを使って認証する必要がある場合に実行する必要があります。This needs to be performed after you have completed a database migration to managed instance, and want to use the Azure AD login to authenticate.

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

E.E. マネージド インスタンスでのログインを持たないデータベース内の古い Windows ユーザーを、Azure AD ユーザーにマップするMap an old Windows user in the database without a login in managed instance to an Azure AD user

次の例では、ログインを持たないユーザー westus/joe が、Azure AD ユーザー joe@westus.com に再マップされます。The following example remaps the user, westus/joe without a login, to an Azure AD user, joe@westus.com. フェデレーション ユーザーは Azure AD 内に存在している必要があります。The federated user must exist in Azure AD.

ALTER USER [westus/joe] FROM EXTERNAL PROVIDER

F.F. ユーザーの別名を既存の Azure AD ログインにマップするMap the user alias to an existing Azure AD login

次の例では、ユーザー名 westus\joejoe_alias に再マップされます。The following example remaps the user name, westus\joe to joe_alias. この場合、対応する Azure AD ログインは joe@westus.com です。The corresponding Azure AD login in this case is joe@westus.com.

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

G.G. マネージド インスタンスで移行された Windows グループを Azure AD グループにマップするMap a Windows group that was migrated in managed instance to an Azure AD group

次の例では、古いオンプレミスのグループ westus\mygroup を、マネージド インスタンスの Azure AD グループ mygroup に再マップします。The following example remaps the old on-premises group, westus\mygroup to an Azure AD group mygroup in the managed instance. このグループは Azure AD 内に存在している必要があります。The group must exist in Azure AD.

ALTER USER [westus\mygroup] WITH LOGIN = mygroup

参照See also

SQL ServerSQL Server SQL Database
単一データベース/エラスティック プール
SQL Databasesingle database/elastic pool SQL Database
マネージド インスタンス
SQL DatabaseManaged Instance * Azure Synapse
Analytics *
* Azure Synapse
Analytics *
Analytics Platform
System (PDW)

Analytics PlatformSystem (PDW)

 

Azure Synapse AnalyticsAzure Synapse Analytics

構文Syntax

-- Syntax for Azure Synapse

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

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

引数Arguments

userName: データベース内でユーザーを識別する名前を指定します。Specifies the name by which the user is identified inside this database.

LOGIN = loginName: ユーザーのセキュリティ識別子 (SID) を別のログインの SID に一致するように変更することで、ユーザーを別のログインに再マッピングします。Remaps a user to another login by changing the user's Security Identifier (SID) to match the login's SID.

ALTER USER ステートメントが SQL のバッチ内の唯一のステートメントである場合、Azure SQL Database では WITH LOGIN 句がサポートされます。If the ALTER USER statement is the only statement in a SQL batch, Azure SQL Database supports the WITH LOGIN clause. ALTER USER ステートメントが SQL バッチ内の唯一のステートメントではない場合、または動的 SQL で実行されている場合、WITH LOGIN 句はサポートされません。If the ALTER USER statement isn't the only statement in a SQL batch or is executed in dynamic SQL, the WITH LOGIN clause isn't supported.

NAME = newUserName: このユーザーの新しい名前を指定します。NAME = newUserName Specifies the new name for this user. newUserName は現在のデータベースに存在しない名前にする必要があります。 newUserName must not already occur in the current database.

DEFAULT_SCHEMA = { schemaName | NULL } このユーザー用のオブジェクトの名前を解決するときに、サーバーで最初に検索されるスキーマを指定します。Specifies the first schema that will be searched by the server when it resolves the names of objects for this user. 既定のスキーマを NULL に設定すると、既定のスキーマが Windows グループから削除されます。Setting the default schema to NULL removes a default schema from a Windows group. Windows ユーザーでは、NULL オプションは使用できません。The NULL option can't be used with a Windows user.

解説Remarks

既定のスキーマは、このデータベース ユーザー用のオブジェクトの名前を解決するときに、サーバーで最初に検索されるスキーマになります。The default schema will be the first schema that will be searched by the server when it resolves the names of objects for this database user. 特に指定しない限り、このデータベース ユーザーによって作成されたオブジェクトの所有者になるのは、既定のスキーマです。Unless otherwise specified, the default schema will be the owner of objects created by this database user.

ユーザーに既定のスキーマが設定されている場合は、その既定のスキーマが使用されます。If the user has a default schema, that default schema will used. ユーザーに既定のスキーマが指定されておらず、そのユーザーが所属しているグループに既定のスキーマが指定されている場合は、グループの既定のスキーマが使用されます。If the user doesn't have a default schema, but the user is a member of a group that has a default schema, the default schema of the group will be used. ユーザーに既定のスキーマが指定されておらず、そのユーザーが複数のグループに所属している場合、そのユーザーの既定のスキーマは、最も小さい principle_id と明示的に設定された既定のスキーマを持つ Windows グループのスキーマになります。If the user doesn't have a default schema, and is a member of more than one group, the default schema for the user will be that of the Windows group with the lowest principal_id and an explicitly set default schema. ユーザーに対する既定のスキーマを決定できない場合は、dbo スキーマが使用されます。If no default schema can be determined for a user, the dbo schema will be used.

DEFAULT_SCHEMA には、現在データベースに存在しないスキーマも設定できます。DEFAULT_SCHEMA can be set to a schema that doesn't currently occur in the database. したがって、スキーマが作成される前に DEFAULT_SCHEMA をユーザーに割り当てることができます。Therefore, you can assign a DEFAULT_SCHEMA to a user before that schema is created.

証明書または非対称キーにマップされているユーザーに対して、DEFAULT_SCHEMA を指定することはできません。DEFAULT_SCHEMA can't be specified for a user who is mapped to a certificate, or an asymmetric key.

重要

ユーザーが固定サーバー ロール sysadmin のメンバーである場合、DEFAULT_SCHEMA の値は無視されます。The value of DEFAULT_SCHEMA is ignored if the user is a member of the sysadmin fixed server role. 固定サーバー ロール sysadmin のすべてのメンバーには、dbo の既定のスキーマが割り当てられます。All members of the sysadmin fixed server role have a default schema of dbo.

WITH LOGIN 句を使用すると、ユーザーを別のログインに再マップできます。The WITH LOGIN clause enables the remapping of a user to a different login. ログインのないユーザー、証明書にマップされているユーザー、非対称キーにマップされているユーザーを、この句を使って再マップすることはできません。Users without a login, users mapped to a certificate, or users mapped to an asymmetric key can't be remapped with this clause. SQL ユーザーおよび Windows ユーザー (またはグループ) のみ再マップできます。Only SQL users and Windows users (or groups) can be remapped. WITH LOGIN 句は、Windows アカウントを SQL ServerSQL Server ログインに変更するなど、ユーザーの種類の変更には使用できません。The WITH LOGIN clause can't be used to change the type of user, such as changing a Windows account to a SQL ServerSQL Server login.

次の条件を満たす場合、ユーザーの名前はログイン名に自動的に変更されます。The name of the user will be automatically renamed to the login name if the following conditions are true.

  • 新しい名前が指定されていない。No new name was specified.

  • 現在の名前がログイン名とは異なる。The current name differs from the login name.

そうでない場合は、呼び出し元が NAME 句を追加で呼び出さない限り、ユーザーの名前は変更されません。Otherwise, the user won't be renamed unless the caller additionally invokes the NAME clause.

SQL ServerSQL Server のログイン、証明書、非対称キーにマップされているユーザーの名前には、円記号 (\) を含めることはできません。The name of a user mapped to a SQL ServerSQL Server login, a certificate, or an asymmetric key can't contain the backslash character (\).

注意事項

SQL Server 2005 からスキーマの動作が変更されました。Beginning with SQL Server 2005, the behavior of schemas changed. その結果、スキーマがデータベース ユーザーと同じであると想定しているコードでは、正しい結果が返されない場合があります。As a result, code that assumes that schemas are equivalent to database users may no longer return correct results. 以下の DDL ステートメントが使用されているデータベースでは、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。Old catalog views, including sysobjects, should not be used in a database in which any of the following DDL statements have ever been used: 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. そのようなデータベースでは、代わりに新しいカタログ ビューを使用してください。In such databases you must instead use the new catalog views. 新しいカタログ ビューでは、SQL Server 2005 で導入されたプリンシパルとスキーマの分離が考慮されます。The new catalog views take into account the separation of principals and schemas that was introduced in SQL Server 2005. カタログ ビューの詳細については、「カタログ ビュー (Transact-SQL)」を参照してください。For more information about catalog views, see Catalog Views (Transact-SQL).

SecuritySecurity

注意

ALTER ANY USER 権限を持つユーザーは、任意のユーザーの既定のスキーマを変更できます。A user who has ALTER ANY USER permission can change the default schema of any user. 変更されたスキーマを所有するユーザーは、知らずに間違ったテーブルからデータを選択したり、間違ったスキーマからコードを実行する可能性があります。A user who has an altered schema might unknowingly select data from the wrong table or execute code from the wrong schema.

アクセス許可Permissions

ユーザーの名前を変更するには、ALTER ANY USER 権限が必要です。To change the name of a user requires the ALTER ANY USER permission.

ターゲットを変更するには、ユーザーのログインにデータベースの CONTROL 権限が必要です。To change the target login of a user requires the CONTROL permission on the database.

データベースに対する CONTROL 権限を持つユーザーのユーザー名を変更するには、データベースに対する CONTROL 権限が必要です。To change the user name of a user having CONTROL permission on the database requires the CONTROL permission on the database.

既定のスキーマまたは言語を変更するには、ユーザーに対する ALTER 権限が必要です。To change the default schema or language requires ALTER permission on the user. ユーザーは自分が所有する既定のスキーマまたは言語を変更できます。Users can change their own default schema or language.

Examples

すべての例は、ユーザー データベースで実行されます。All examples are executed in a user database.

A.A. データベース ユーザーの名前を変更するChanging the name of a database user

次の例では、データベース ユーザー Mary5 の名前を Mary51 に変更します。The following example changes the name of the database user Mary5 to Mary51.

ALTER USER Mary5 WITH NAME = Mary51;
GO

B.B. ユーザーの既定のスキーマを変更するChanging the default schema of a user

次の例では、ユーザー Mary51 の既定のスキーマを Purchasing に変更します。The following example changes the default schema of the user Mary51 to Purchasing.

ALTER USER Mary51 WITH DEFAULT_SCHEMA = Purchasing;
GO

参照See also

SQL ServerSQL Server SQL Database
単一データベース/エラスティック プール
SQL Databasesingle database/elastic pool SQL Database
マネージド インスタンス
SQL DatabaseManaged Instance Azure Synapse
Analytics
Azure Synapse
Analytics
* Analytics
Platform System (PDW) *

AnalyticsPlatform System (PDW)

 

分析プラットフォーム システムAnalytics Platform System

構文Syntax

-- Syntax for Analytics Platform System

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

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

引数Arguments

userName: データベース内でユーザーを識別する名前を指定します。Specifies the name by which the user is identified inside this database.

LOGIN = loginName: ユーザーのセキュリティ識別子 (SID) を別のログインの SID に一致するように変更することで、ユーザーを別のログインに再マッピングします。Remaps a user to another login by changing the user's Security Identifier (SID) to match the login's SID.

ALTER USER ステートメントが SQL のバッチ内の唯一のステートメントである場合、Azure SQL Database では WITH LOGIN 句がサポートされます。If the ALTER USER statement is the only statement in a SQL batch, Azure SQL Database supports the WITH LOGIN clause. ALTER USER ステートメントが SQL バッチ内の唯一のステートメントではない場合、または動的 SQL で実行されている場合、WITH LOGIN 句はサポートされません。If the ALTER USER statement isn't the only statement in a SQL batch or is executed in dynamic SQL, the WITH LOGIN clause isn't supported.

NAME = newUserName: このユーザーの新しい名前を指定します。NAME = newUserName Specifies the new name for this user. newUserName は現在のデータベースに存在しない名前にする必要があります。 newUserName must not already occur in the current database.

DEFAULT_SCHEMA = { schemaName | NULL } このユーザー用のオブジェクトの名前を解決するときに、サーバーで最初に検索されるスキーマを指定します。Specifies the first schema that will be searched by the server when it resolves the names of objects for this user. 既定のスキーマを NULL に設定すると、既定のスキーマが Windows グループから削除されます。Setting the default schema to NULL removes a default schema from a Windows group. Windows ユーザーでは、NULL オプションは使用できません。The NULL option can't be used with a Windows user.

解説Remarks

既定のスキーマは、このデータベース ユーザー用のオブジェクトの名前を解決するときに、サーバーで最初に検索されるスキーマになります。The default schema will be the first schema that will be searched by the server when it resolves the names of objects for this database user. 特に指定しない限り、このデータベース ユーザーによって作成されたオブジェクトの所有者になるのは、既定のスキーマです。Unless otherwise specified, the default schema will be the owner of objects created by this database user.

ユーザーに既定のスキーマが設定されている場合は、その既定のスキーマが使用されます。If the user has a default schema, that default schema will used. ユーザーに既定のスキーマが指定されておらず、そのユーザーが所属しているグループに既定のスキーマが指定されている場合は、グループの既定のスキーマが使用されます。If the user doesn't have a default schema, but the user is a member of a group that has a default schema, the default schema of the group will be used. ユーザーに既定のスキーマが指定されておらず、そのユーザーが複数のグループに所属している場合、そのユーザーの既定のスキーマは、最も小さい principle_id と明示的に設定された既定のスキーマを持つ Windows グループのスキーマになります。If the user doesn't have a default schema, and is a member of more than one group, the default schema for the user will be that of the Windows group with the lowest principal_id and an explicitly set default schema. ユーザーに対する既定のスキーマを決定できない場合は、dbo スキーマが使用されます。If no default schema can be determined for a user, the dbo schema will be used.

DEFAULT_SCHEMA には、現在データベースに存在しないスキーマも設定できます。DEFAULT_SCHEMA can be set to a schema that doesn't currently occur in the database. したがって、スキーマが作成される前に DEFAULT_SCHEMA をユーザーに割り当てることができます。Therefore, you can assign a DEFAULT_SCHEMA to a user before that schema is created.

証明書または非対称キーにマップされているユーザーに対して、DEFAULT_SCHEMA を指定することはできません。DEFAULT_SCHEMA can't be specified for a user who is mapped to a certificate, or an asymmetric key.

重要

ユーザーが固定サーバー ロール sysadmin のメンバーである場合、DEFAULT_SCHEMA の値は無視されます。The value of DEFAULT_SCHEMA is ignored if the user is a member of the sysadmin fixed server role. 固定サーバー ロール sysadmin のすべてのメンバーには、dbo の既定のスキーマが割り当てられます。All members of the sysadmin fixed server role have a default schema of dbo.

WITH LOGIN 句を使用すると、ユーザーを別のログインに再マップできます。The WITH LOGIN clause enables the remapping of a user to a different login. ログインのないユーザー、証明書にマップされているユーザー、非対称キーにマップされているユーザーを、この句を使って再マップすることはできません。Users without a login, users mapped to a certificate, or users mapped to an asymmetric key can't be remapped with this clause. SQL ユーザーおよび Windows ユーザー (またはグループ) のみ再マップできます。Only SQL users and Windows users (or groups) can be remapped. WITH LOGIN 句は、Windows アカウントを SQL ServerSQL Server ログインに変更するなど、ユーザーの種類の変更には使用できません。The WITH LOGIN clause can't be used to change the type of user, such as changing a Windows account to a SQL ServerSQL Server login.

次の条件を満たす場合、ユーザーの名前はログイン名に自動的に変更されます。The name of the user will be automatically renamed to the login name if the following conditions are true.

  • 新しい名前が指定されていない。No new name was specified.

  • 現在の名前がログイン名とは異なる。The current name differs from the login name.

そうでない場合は、呼び出し元が NAME 句を追加で呼び出さない限り、ユーザーの名前は変更されません。Otherwise, the user won't be renamed unless the caller additionally invokes the NAME clause.

SQL ServerSQL Server のログイン、証明書、非対称キーにマップされているユーザーの名前には、円記号 (\) を含めることはできません。The name of a user mapped to a SQL ServerSQL Server login, a certificate, or an asymmetric key can't contain the backslash character (\).

注意事項

SQL Server 2005 からスキーマの動作が変更されました。Beginning with SQL Server 2005, the behavior of schemas changed. その結果、スキーマがデータベース ユーザーと同じであると想定しているコードでは、正しい結果が返されない場合があります。As a result, code that assumes that schemas are equivalent to database users may no longer return correct results. 以下の DDL ステートメントが使用されているデータベースでは、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。Old catalog views, including sysobjects, should not be used in a database in which any of the following DDL statements have ever been used: 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. そのようなデータベースでは、代わりに新しいカタログ ビューを使用してください。In such databases you must instead use the new catalog views. 新しいカタログ ビューでは、SQL Server 2005 で導入されたプリンシパルとスキーマの分離が考慮されます。The new catalog views take into account the separation of principals and schemas that was introduced in SQL Server 2005. カタログ ビューの詳細については、「カタログ ビュー (Transact-SQL)」を参照してください。For more information about catalog views, see Catalog Views (Transact-SQL).

SecuritySecurity

注意

ALTER ANY USER 権限を持つユーザーは、任意のユーザーの既定のスキーマを変更できます。A user who has ALTER ANY USER permission can change the default schema of any user. 変更されたスキーマを所有するユーザーは、知らずに間違ったテーブルからデータを選択したり、間違ったスキーマからコードを実行する可能性があります。A user who has an altered schema might unknowingly select data from the wrong table or execute code from the wrong schema.

アクセス許可Permissions

ユーザーの名前を変更するには、ALTER ANY USER 権限が必要です。To change the name of a user requires the ALTER ANY USER permission.

ターゲットを変更するには、ユーザーのログインにデータベースの CONTROL 権限が必要です。To change the target login of a user requires the CONTROL permission on the database.

データベースに対する CONTROL 権限を持つユーザーのユーザー名を変更するには、データベースに対する CONTROL 権限が必要です。To change the user name of a user having CONTROL permission on the database requires the CONTROL permission on the database.

既定のスキーマまたは言語を変更するには、ユーザーに対する ALTER 権限が必要です。To change the default schema or language requires ALTER permission on the user. ユーザーは自分が所有する既定のスキーマまたは言語を変更できます。Users can change their own default schema or language.

Examples

すべての例は、ユーザー データベースで実行されます。All examples are executed in a user database.

A.A. データベース ユーザーの名前を変更するChanging the name of a database user

次の例では、データベース ユーザー Mary5 の名前を Mary51 に変更します。The following example changes the name of the database user Mary5 to Mary51.

ALTER USER Mary5 WITH NAME = Mary51;
GO

B.B. ユーザーの既定のスキーマを変更するChanging the default schema of a user

次の例では、ユーザー Mary51 の既定のスキーマを Purchasing に変更します。The following example changes the default schema of the user Mary51 to Purchasing.

ALTER USER Mary51 WITH DEFAULT_SCHEMA = Purchasing;
GO

参照See also