Bagikan melalui


ALTER USER (Transact-SQL)

Mengganti nama pengguna database atau mengubah skema defaultnya.

Konvensi sintaks transact-SQL

Catatan

ID Microsoft Entra sebelumnya dikenal sebagai Azure Active Directory (Azure AD).

Pilih produk

Di baris berikut, pilih nama produk yang Anda minati, dan hanya informasi produk yang ditampilkan.

* SQL Server *  

 

SQL Server

Sintaks

-- Syntax for SQL Server

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

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

Argumen

user_name

Menentukan nama tempat pengguna diidentifikasi di dalam database ini.

LOGIN = login_name

Memetakan ulang pengguna ke login lain dengan mengubah Pengidentifikasi Keamanan (SID) pengguna agar sesuai dengan SID login.

NAME = new_user_name

Menentukan nama baru untuk pengguna ini. new_user_name belum ada di database saat ini.

DEFAULT_SCHEMA = { schema_name | NULL }

Menentukan skema pertama yang akan dicari oleh server ketika menyelesaikan nama objek untuk pengguna ini. Mengatur skema default ke NULL menghapus skema default dari grup Windows. Opsi NULL tidak dapat digunakan dengan pengguna Windows.

PASSWORD = 'kata sandi'

Berlaku untuk: SQL Server 2012 (11.x) dan versi yang lebih baru, Azure SQL Database.

Menentukan kata sandi untuk pengguna yang sedang diubah. Kata sandi peka huruf besar/kecil.

Catatan

Opsi ini hanya tersedia untuk pengguna mandiri. Untuk informasi selengkapnya, lihat Database terkandung dan sp_migrate_user_to_contained (Transact-SQL).

OLD_PASSWORD ='oldpassword'

Berlaku untuk: SQL Server 2012 (11.x) dan versi yang lebih baru, Azure SQL Database.

Kata sandi pengguna saat ini yang akan digantikan oleh 'kata sandi'. Kata sandi peka huruf besar/kecil. OLD_PASSWORD diperlukan untuk mengubah kata sandi, kecuali Anda memiliki izin UBAH PENGGUNA APA PUN. Mengharuskan OLD_PASSWORD mencegah pengguna dengan izin IMPERSONATION mengubah kata sandi.

Catatan

Opsi ini hanya tersedia untuk pengguna mandiri.

DEFAULT_LANGUAGE ={ NONE |> lcid <|> nama bahasa <| <> }

Berlaku untuk: SQL Server 2012 (11.x) dan versi yang lebih baru.

Menentukan bahasa default yang akan ditetapkan kepada pengguna. Jika opsi ini diatur ke NONE, bahasa default diatur ke bahasa default database saat ini. Jika bahasa default database kemudian diubah, bahasa default pengguna tetap tidak berubah. DEFAULT_LANGUAGE dapat berupa ID lokal (lcid), nama bahasa, atau alias bahasa.

Catatan

Opsi ini hanya dapat ditentukan dalam database mandiri dan hanya untuk pengguna mandiri.

ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ AKTIF | NONAKTIF ]

Berlaku untuk: SQL Server 2016 (13.x) dan versi yang lebih baru, Azure SQL Database.

Menekan pemeriksaan metadata kriptografi pada server dalam operasi penyalinan massal. Ini memungkinkan pengguna menyalin data terenkripsi secara massal antara tabel atau database, tanpa mendekripsi data. Defaultnya adalah NONAKTIF.

Peringatan

Penggunaan opsi ini yang tidak tepat dapat menyebabkan kerusakan data. Untuk informasi selengkapnya, lihat memuat data terenkripsi secara massal ke kolom menggunakan Always Encrypted.

Keterangan

Skema default akan menjadi skema pertama yang akan dicari oleh server ketika menyelesaikan nama objek untuk pengguna database ini. Kecuali ditentukan lain, skema default akan menjadi pemilik objek yang dibuat oleh pengguna database ini.

Jika pengguna memiliki skema default, skema default tersebut akan digunakan. Jika pengguna tidak memiliki skema default, tetapi pengguna adalah anggota grup yang memiliki skema default, skema default grup akan digunakan. Jika pengguna tidak memiliki skema default, dan merupakan anggota lebih dari satu grup, skema default untuk pengguna adalah grup Windows dengan principal_id terendah dan skema default yang ditetapkan secara eksplisit. Jika tidak ada skema default yang dapat ditentukan untuk pengguna, skema dbo digunakan.

DEFAULT_SCHEMA dapat diatur ke skema yang saat ini tidak terjadi dalam database. Oleh karena itu, Anda dapat menetapkan DEFAULT_SCHEMA kepada pengguna sebelum skema tersebut dibuat.

DEFAULT_SCHEMA tidak dapat ditentukan untuk pengguna yang dipetakan ke sertifikat, atau kunci asimetris.

Penting

Nilai DEFAULT_SCHEMA diabaikan jika pengguna adalah anggota peran server tetap sysadmin . Semua anggota peran server tetap sysadmin memiliki skema dbodefault .

Anda dapat mengubah nama pengguna yang dipetakan ke login Atau grup Windows hanya ketika SID nama pengguna baru cocok dengan SID yang direkam dalam database. Pemeriksaan ini membantu mencegah spoofing login Windows dalam database.

Klausul WITH LOGIN memungkinkan pememajaan ulang pengguna ke login yang berbeda. Pengguna tanpa login, pengguna yang dipetakan ke sertifikat, atau pengguna yang dipetakan ke kunci asimetris tidak dapat dipetakan ulang dengan klausa ini. Hanya pengguna SQL dan pengguna Windows (atau grup) yang dapat dipetakan ulang. Klausa WITH LOGIN tidak dapat digunakan untuk mengubah jenis pengguna, seperti mengubah akun Windows ke login SQL Server.

SID yang tidak cocok dapat terjadi ketika Anda telah memulihkan database dari server lain dan membuat pengguna database dipetakan ke login SQL Server. Anda dapat menggunakan klausa WITH LOGIN untuk memperbaiki situasi ini dengan mengganti SID pengguna dalam database dengan SID masuk dari server.

Nama pengguna akan secara otomatis diganti namanya menjadi nama masuk jika kondisi berikut ini benar.

  • Pengguna adalah pengguna Windows.

  • Nama adalah nama Windows (berisi garis miring terbelakang).

  • Tidak ada nama baru yang ditentukan.

  • Nama saat ini berbeda dari nama masuk.

Jika tidak, pengguna tidak akan diganti namanya kecuali pemanggil juga memanggil klausa NAME.

Nama pengguna yang dipetakan ke login SQL Server, sertifikat, atau kunci asimetris tidak boleh berisi karakter garis miring terbalik (\).

Perhatian

Dimulai dengan SQL Server 2005, perilaku skema berubah. Akibatnya, kode yang mengasumsikan bahwa skema setara dengan pengguna database mungkin tidak lagi mengembalikan hasil yang benar. Tampilan katalog lama, termasuk sysobjects, tidak boleh digunakan dalam database di mana salah satu pernyataan DDL berikut pernah digunakan: 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. Dalam database tersebut, Anda harus menggunakan tampilan katalog baru. Tampilan katalog baru memperhitungkan pemisahan prinsipal dan skema yang diperkenalkan di SQL Server 2005. Untuk informasi selengkapnya tentang tampilan katalog, lihat Tampilan Katalog (Transact-SQL).

Keamanan

Catatan

Pengguna yang memiliki izin ALTER ANY USER dapat mengubah skema default pengguna mana pun. Pengguna yang memiliki skema yang diubah mungkin tanpa sadar memilih data dari tabel yang salah atau menjalankan kode dari skema yang salah.

Izin

Untuk mengubah nama pengguna memerlukan izin UBAH PENGGUNA APA PUN.

Untuk mengubah login target pengguna memerlukan izin CONTROL pada database.

Untuk mengubah nama pengguna pengguna yang memiliki izin CONTROL pada database memerlukan izin CONTROL pada database.

Untuk mengubah skema atau bahasa default, diperlukan izin UBAH pada pengguna. Pengguna dapat mengubah skema atau bahasa default mereka sendiri.

Contoh

Semua contoh dijalankan dalam database pengguna.

J. Mengubah nama pengguna database

Contoh berikut mengubah nama pengguna Mary5 database menjadi Mary51.

ALTER USER Mary5 WITH NAME = Mary51;
GO

B. Mengubah skema default pengguna

Contoh berikut mengubah skema default pengguna Mary51 menjadi Purchasing.

ALTER USER Mary51 WITH DEFAULT_SCHEMA = Purchasing;
GO

C. Mengubah beberapa opsi sekaligus

Berlaku untuk: SQL Server 2012 (11.x) dan versi yang lebih baru.

Contoh berikut mengubah beberapa opsi untuk pengguna database mandiri dalam satu pernyataan. Ganti <new strong password here> dan <old strong password here> dengan nilai Anda sendiri.

ALTER USER Philip
WITH NAME = Philipe
, DEFAULT_SCHEMA = Development
, PASSWORD = '<new strong password here>' OLD_PASSWORD = '<old strong password here>'
, DEFAULT_LANGUAGE= French ;
GO

D. Memperbaiki SID yang tidak cocok

Contoh berikut mengoreksi SID pengguna dalam database agar sesuai dengan SID di server untuk login terautentikasi SQL Server.

ALTER USER Mai
WITH LOGIN = Mai;
GO

* Azure SQL Database dan Microsoft Fabric *

 

Azure SQL Database dan Microsoft Fabric

Sintaks

Sintaks untuk Azure SQL Database

-- Syntax for Azure SQL Database

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

<set_item> ::=
NAME = new_user_name
| DEFAULT_SCHEMA = schema_name
| LOGIN = login_name
| ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ ON | OFF ]
[;]

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

<set_item> ::=
NAME = new_user_name
| DEFAULT_SCHEMA = { schema_name | NULL }
| LOGIN = login_name
| PASSWORD = 'password' [ OLD_PASSWORD = 'oldpassword' ]
| ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ ON | OFF ]

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

<set_item> ::=
 NAME = new_user_name

Sintaks untuk database SQL di Microsoft Fabric

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

Sintaks untuk Microsoft Fabric Warehouse

-- Syntax for Fabric Data Warehouse

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

<set_item> ::=
 | DEFAULT_SCHEMA = schema_name
[;]

Argumen

user_name

Menentukan nama tempat pengguna diidentifikasi di dalam database ini.

LOGIN = login_name

Memetakan ulang pengguna ke login lain dengan mengubah Pengidentifikasi Keamanan (SID) pengguna agar sesuai dengan SID login.

Jika pernyataan ALTER USER adalah satu-satunya pernyataan dalam batch SQL, Azure SQL Database mendukung klausa WITH LOGIN. Jika pernyataan ALTER USER bukan satu-satunya pernyataan dalam batch SQL atau dijalankan dalam SQL dinamis, klausa WITH LOGIN tidak didukung.

NAME = new_user_name

Menentukan nama baru untuk pengguna ini. new_user_name belum ada di database saat ini.

DEFAULT_SCHEMA = { schema_name | NULL }

Menentukan skema pertama yang akan dicari oleh server ketika menyelesaikan nama objek untuk pengguna ini.

Mengatur skema default ke NULL menghapus skema default dari pengguna yang dibuat untuk grup ID Microsoft Entra. Opsi NULL tidak dapat digunakan dengan jenis pengguna lain.

PASSWORD = 'kata sandi'

Berlaku untuk: Azure SQL Database.

Menentukan kata sandi untuk pengguna yang sedang diubah. Kata sandi peka huruf besar/kecil.

Catatan

Opsi ini hanya tersedia untuk pengguna mandiri. Untuk informasi selengkapnya, lihat Database terkandung dan sp_migrate_user_to_contained (Transact-SQL).

OLD_PASSWORD ='oldpassword'

Berlaku untuk: Azure SQL Database.

Kata sandi pengguna saat ini yang akan digantikan oleh 'kata sandi'. Kata sandi peka huruf besar/kecil. OLD_PASSWORD diperlukan untuk mengubah kata sandi, kecuali Anda memiliki izin UBAH PENGGUNA APA PUN. Mengharuskan OLD_PASSWORD mencegah pengguna dengan izin IMPERSONATION mengubah kata sandi.

Catatan

Opsi ini hanya tersedia untuk pengguna mandiri.

ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ AKTIF | NONAKTIF ]

Berlaku untuk: SQL Server 2016 (13.x) dan versi yang lebih baru, Azure SQL Database.

Menekan pemeriksaan metadata kriptografi pada server dalam operasi penyalinan massal. Ini memungkinkan pengguna menyalin data terenkripsi secara massal antara tabel atau database, tanpa mendekripsi data. Defaultnya adalah NONAKTIF.

Peringatan

Penggunaan opsi ini yang tidak tepat dapat menyebabkan kerusakan data. Untuk informasi selengkapnya, lihat memuat data terenkripsi secara massal ke kolom menggunakan Always Encrypted.

Keterangan

Skema default akan menjadi skema pertama yang akan dicari oleh server ketika menyelesaikan nama objek untuk pengguna database ini. Kecuali ditentukan lain, skema default akan menjadi pemilik objek yang dibuat oleh pengguna database ini.

Jika pengguna memiliki skema default, skema default tersebut akan digunakan. Jika pengguna tidak memiliki skema default, tetapi pengguna adalah anggota grup yang memiliki skema default, skema default grup akan digunakan. Jika pengguna tidak memiliki skema default, dan merupakan anggota lebih dari satu grup, skema default untuk pengguna adalah grup dengan principal_id terendah dan skema default yang ditetapkan secara eksplisit. Jika tidak ada skema default yang dapat ditentukan untuk pengguna, skema dbo digunakan.

DEFAULT_SCHEMA dapat diatur ke skema yang saat ini tidak terjadi dalam database. Oleh karena itu, Anda dapat menetapkan DEFAULT_SCHEMA kepada pengguna sebelum skema tersebut dibuat.

DEFAULT_SCHEMA tidak dapat ditentukan untuk pengguna yang dipetakan ke sertifikat, atau kunci asimetris.

Penting

Nilai DEFAULT_SCHEMA diabaikan jika pengguna adalah anggota peran server tetap sysadmin . Semua anggota peran server tetap sysadmin memiliki skema dbodefault .

Klausul WITH LOGIN memungkinkan pememajaan ulang pengguna ke login yang berbeda. Pengguna tanpa login, pengguna yang dipetakan ke sertifikat, atau pengguna yang dipetakan ke kunci asimetris tidak dapat dipetakan ulang dengan klausa ini. Hanya pengguna SQL yang dapat dipetakan ulang. Klausa WITH LOGIN tidak dapat digunakan untuk mengubah jenis pengguna.

Nama pengguna akan secara otomatis diganti namanya menjadi nama masuk jika kondisi berikut ini benar.

  • Tidak ada nama baru yang ditentukan.

  • Nama saat ini berbeda dari nama masuk.

Jika tidak, pengguna tidak akan diganti namanya kecuali pemanggil juga memanggil klausa NAME.

Nama pengguna yang dipetakan ke login SQL Server, sertifikat, atau kunci asimetris tidak boleh berisi karakter garis miring terbalik (\).

Perhatian

Dimulai dengan SQL Server 2005, perilaku skema berubah. Akibatnya, kode yang mengasumsikan bahwa skema setara dengan pengguna database mungkin tidak lagi mengembalikan hasil yang benar. Tampilan katalog lama, termasuk sysobjects, tidak boleh digunakan dalam database di mana salah satu pernyataan DDL berikut pernah digunakan: 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. Dalam database tersebut, Anda harus menggunakan tampilan katalog baru. Tampilan katalog baru memperhitungkan pemisahan prinsipal dan skema yang diperkenalkan di SQL Server 2005. Untuk informasi selengkapnya tentang tampilan katalog, lihat Tampilan Katalog (Transact-SQL).

Database Fabric SQL

Untuk informasi selengkapnya, lihat:

Gudang Fabric

Di Microsoft Fabric Warehouse, ALTER USER terbatas pada pengaturan skema default saja. Argumen lain yang umumnya terkait dengan ALTER USER di SQL atau produk lain tidak didukung dan akan mengembalikan kesalahan.

Di Microsoft Fabric Warehouse, nama kolab peka huruf besar/kecil.

Skema default akan menjadi skema pertama yang akan dicari oleh server ketika menyelesaikan nama objek untuk pengguna database ini. Kecuali ditentukan lain, skema default akan menjadi pemilik objek yang dibuat oleh pengguna database ini.

Jika pengguna memiliki skema default, skema tersebut akan digunakan. Jika tidak ada skema default yang ditentukan, skema dbo akan diterapkan. Mesin database pertama-tama akan mencoba mengatasi objek dalam skema default pengguna. Jika tidak ada objek yang cocok yang ditemukan, maka akan memeriksa skema dbo.

DEFAULT_SCHEMA dapat diatur ke skema yang saat ini tidak ada di database. Oleh karena itu, Anda dapat menetapkan DEFAULT_SCHEMA kepada pengguna sebelum skema tersebut dibuat.

Untuk informasi selengkapnya, lihat:

Keamanan

Catatan

Pengguna yang memiliki izin ALTER ANY USER dapat mengubah skema default pengguna mana pun. Pengguna yang memiliki skema yang diubah mungkin tanpa sadar memilih data dari tabel yang salah atau menjalankan kode dari skema yang salah.

Izin

Untuk mengubah nama pengguna memerlukan izin UBAH PENGGUNA APA PUN.

Untuk mengubah login target pengguna memerlukan izin CONTROL pada database.

Untuk mengubah nama pengguna pengguna yang memiliki izin CONTROL pada database memerlukan izin CONTROL pada database.

Untuk mengubah skema atau bahasa default, diperlukan izin UBAH pada pengguna. Pengguna dapat mengubah skema atau bahasa default mereka sendiri.

Izin peran Gudang Fabric

Pengguna dengan minimum keanggotaan peran KONTRIBUTOR di ruang kerja dapat mengubah SKEMA DEFAULT pengguna apa pun di Fabric Data Warehouse.

Pengguna dengan keanggotaan peran VIEWER di ruang kerja, tidak dapat mengubah skema default mereka sendiri kecuali pengguna dengan akses yang ditingkatkan memberikan izin ini.

Pengguna yang disertakan dalam peran VIEWER di tingkat ruang kerja, memerlukan izin UBAH PENGGUNA APA PUN untuk mengubah skema default pengguna lain.

Contoh

Semua contoh dijalankan dalam database pengguna.

J. Mengubah nama pengguna database

Contoh berikut mengubah nama pengguna Mary5 database menjadi Mary51.

ALTER USER Mary5 WITH NAME = Mary51;
GO

B. Mengubah skema default pengguna

Contoh berikut mengubah skema default pengguna Mary51 menjadi Purchasing.

ALTER USER Mary51 WITH DEFAULT_SCHEMA = Purchasing;
GO

C. Mengubah beberapa opsi sekaligus

Contoh berikut mengubah beberapa opsi untuk pengguna database mandiri dalam satu pernyataan. Ganti <new strong password here> dan <old strong password here> dengan nilai Anda sendiri.

ALTER USER Philip
WITH NAME = Philipe
, DEFAULT_SCHEMA = Development
, PASSWORD = '<new strong password here>' OLD_PASSWORD = '<old strong password here>';
GO

D. Mengubah skema default pengguna

Contoh berikut mengubah skema default pengguna Mary51 menjadi Purchasing.

ALTER USER Mary51 WITH DEFAULT_SCHEMA = Purchasing;
GO

* SQL Managed Instance *

 

Instans Terkelola Azure SQL

Sintaks

Penting

Hanya opsi berikut yang didukung untuk Azure SQL Managed Instance saat diterapkan ke pengguna dengan login Microsoft Entra: DEFAULT_SCHEMA = { schema_name | NULL } dan DEFAULT_LANGUAGE = { NONE | lcid | language name | language alias }

Ada ekstensi sintaks baru yang ditambahkan untuk membantu memulihkan pengguna dalam database yang dimigrasikan ke Azure SQL Managed Instance. Sintaks ALTER USER membantu memetakan pengguna database di domain federasi dan disinkronkan dengan ID Microsoft Entra, ke login Microsoft Entra.

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

<set_item> ::=
NAME = new_user_name
| DEFAULT_SCHEMA = { schema_name | NULL }
| LOGIN = login_name
| 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 user_name
 { WITH <set_item> [ ,...n ] | FROM EXTERNAL PROVIDER }
[;]

<set_item> ::=
 NAME = new_user_name
| DEFAULT_SCHEMA = { schema_name | NULL }
| LOGIN = login_name
| DEFAULT_LANGUAGE = { NONE | <lcid> | <language name> | <language alias> }

Argumen

user_name

Menentukan nama tempat pengguna diidentifikasi di dalam database ini.

LOGIN = login_name

Memetakan ulang pengguna ke login lain dengan mengubah Pengidentifikasi Keamanan (SID) pengguna agar sesuai dengan SID login.

Jika pernyataan ALTER USER adalah satu-satunya pernyataan dalam batch SQL, Azure SQL Database mendukung klausa WITH LOGIN. Jika pernyataan ALTER USER bukan satu-satunya pernyataan dalam batch SQL atau dijalankan dalam SQL dinamis, klausa WITH LOGIN tidak didukung.

NAME = new_user_name

Menentukan nama baru untuk pengguna ini. new_user_name belum ada di database saat ini.

DEFAULT_SCHEMA = { schema_name | NULL }

Menentukan skema pertama yang akan dicari oleh server ketika menyelesaikan nama objek untuk pengguna ini. Mengatur skema default ke NULL menghapus skema default dari grup Windows. Opsi NULL tidak dapat digunakan dengan pengguna Windows.

PASSWORD = 'kata sandi'

Menentukan kata sandi untuk pengguna yang sedang diubah. Kata sandi peka huruf besar/kecil.

Catatan

Opsi ini hanya tersedia untuk pengguna mandiri. Untuk informasi selengkapnya, lihat Database terkandung dan sp_migrate_user_to_contained (Transact-SQL).

OLD_PASSWORD = 'oldpassword'

Kata sandi pengguna saat ini yang akan digantikan oleh 'kata sandi'. Kata sandi peka huruf besar/kecil. OLD_PASSWORD diperlukan untuk mengubah kata sandi, kecuali Anda memiliki izin UBAH PENGGUNA APA PUN. Mengharuskan OLD_PASSWORD mencegah pengguna dengan izin IMPERSONATION mengubah kata sandi.

Catatan

Opsi ini hanya tersedia untuk pengguna mandiri.

DEFAULT_LANGUAGE ={ NONE |> lcid <|> nama bahasa <| <> }

Menentukan bahasa default yang akan ditetapkan kepada pengguna. Jika opsi ini diatur ke NONE, bahasa default diatur ke bahasa default database saat ini. Jika bahasa default database nanti diubah, bahasa default pengguna akan tetap tidak berubah. DEFAULT_LANGUAGE dapat berupa ID lokal (lcid), nama bahasa, atau alias bahasa.

Catatan

Opsi ini hanya dapat ditentukan dalam database mandiri dan hanya untuk pengguna mandiri.

ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = [ AKTIF | NONAKTIF ]

Menekan pemeriksaan metadata kriptografi pada server dalam operasi penyalinan massal. Ini memungkinkan pengguna menyalin data terenkripsi secara massal antara tabel atau database, tanpa mendekripsi data. Defaultnya adalah NONAKTIF.

Peringatan

Penggunaan opsi ini yang tidak tepat dapat menyebabkan kerusakan data. Untuk informasi selengkapnya, lihat memuat data terenkripsi secara massal ke kolom menggunakan Always Encrypted.

Keterangan

Skema default akan menjadi skema pertama yang akan dicari oleh server ketika menyelesaikan nama objek untuk pengguna database ini. Kecuali ditentukan lain, skema default akan menjadi pemilik objek yang dibuat oleh pengguna database ini.

Jika pengguna memiliki skema default, skema default tersebut akan digunakan. Jika pengguna tidak memiliki skema default, tetapi pengguna adalah anggota grup yang memiliki skema default, skema default grup akan digunakan. Jika pengguna tidak memiliki skema default, dan merupakan anggota lebih dari satu grup, skema default untuk pengguna adalah grup Windows dengan principal_id terendah dan skema default yang ditetapkan secara eksplisit. Jika tidak ada skema default yang dapat ditentukan untuk pengguna, skema dbo digunakan.

DEFAULT_SCHEMA dapat diatur ke skema yang saat ini tidak terjadi dalam database. Oleh karena itu, Anda dapat menetapkan DEFAULT_SCHEMA kepada pengguna sebelum skema tersebut dibuat.

DEFAULT_SCHEMA tidak dapat ditentukan untuk pengguna yang dipetakan ke sertifikat, atau kunci asimetris.

Penting

Nilai DEFAULT_SCHEMA diabaikan jika pengguna adalah anggota peran server tetap sysadmin . Semua anggota peran server tetap sysadmin memiliki skema dbodefault .

Anda dapat mengubah nama pengguna yang dipetakan ke login Atau grup Windows hanya ketika SID nama pengguna baru cocok dengan SID yang direkam dalam database. Pemeriksaan ini membantu mencegah spoofing login Windows dalam database.

Klausul WITH LOGIN memungkinkan pememajaan ulang pengguna ke login yang berbeda. Pengguna tanpa login, pengguna yang dipetakan ke sertifikat, atau pengguna yang dipetakan ke kunci asimetris tidak dapat dipetakan ulang dengan klausa ini. Hanya pengguna SQL dan pengguna Windows (atau grup) yang dapat dipetakan ulang. Klausa WITH LOGIN tidak dapat digunakan untuk mengubah jenis pengguna, seperti mengubah akun Windows ke login SQL Server. Satu-satunya pengecualian adalah ketika mengubah pengguna Windows menjadi pengguna Microsoft Entra.

Catatan

Aturan berikut ini tidak berlaku untuk pengguna Windows di Azure SQL Managed Instance karena kami tidak mendukung pembuatan login Windows di Azure SQL Managed Instance. Opsi WITH LOGIN hanya dapat digunakan jika login Microsoft Entra ada.

Nama pengguna akan secara otomatis diganti namanya menjadi nama masuk jika kondisi berikut ini benar.

  • Pengguna adalah pengguna Windows.

  • Nama adalah nama Windows (berisi garis miring terbelakang).

  • Tidak ada nama baru yang ditentukan.

  • Nama saat ini berbeda dari nama masuk.

Jika tidak, pengguna tidak akan diganti namanya kecuali pemanggil juga memanggil klausa NAME.

Nama pengguna yang dipetakan ke login SQL Server, sertifikat, atau kunci asimetris tidak boleh berisi karakter garis miring terbalik (\).

Perhatian

Dimulai dengan SQL Server 2005, perilaku skema berubah. Akibatnya, kode yang mengasumsikan bahwa skema setara dengan pengguna database mungkin tidak lagi mengembalikan hasil yang benar. Tampilan katalog lama, termasuk sysobjects, tidak boleh digunakan dalam database di mana salah satu pernyataan DDL berikut pernah digunakan: 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. Dalam database tersebut, Anda harus menggunakan tampilan katalog baru. Tampilan katalog baru memperhitungkan pemisahan prinsipal dan skema yang diperkenalkan di SQL Server 2005. Untuk informasi selengkapnya tentang tampilan katalog, lihat Tampilan Katalog (Transact-SQL).

Keterangan untuk pengguna Windows di SQL lokal yang dimigrasikan ke Azure SQL Managed Instance

Keterangan ini berlaku untuk mengautentikasi sebagai pengguna Windows yang telah digabungkan dan disinkronkan dengan ID Microsoft Entra.

  • Validasi pengguna atau grup Windows yang dipetakan ke ID Microsoft Entra dilakukan secara default melalui Graph API di semua versi sintaks ALTER USER yang digunakan untuk tujuan migrasi.
  • Pengguna lokal yang diberi alias (gunakan nama yang berbeda dari akun Windows asli) akan menyimpan nama alias.
  • Untuk autentikasi Microsoft Entra, parameter LOGIN hanya berlaku untuk Azure SQL Managed Instance dan tidak dapat digunakan dengan SQL Database.
  • Untuk melihat login untuk perwakilan Microsoft Entra, gunakan perintah berikut: SELECT * FROM sys.server_principals;.
  • Periksa jenis login yang ditunjukkan adalah E atau X.
  • Opsi KATA SANDI tidak dapat digunakan untuk pengguna Microsoft Entra.
  • Dalam semua kasus migrasi, peran dan izin pengguna atau grup Windows akan secara otomatis ditransfer ke pengguna atau grup Microsoft Entra baru.
  • FROM EXTERNAL PROVIDER adalah untuk mengubah pengguna dan grup Windows dari SQL lokal ke pengguna dan grup Microsoft Entra. Domain Windows harus digabungkan dengan ID Microsoft Entra dan semua anggota domain Windows harus ada di ID Microsoft Entra saat menggunakan ekstensi ini. Sintaks FROM EXTERNAL PROVIDER berlaku untuk Azure SQL Managed Instance dan harus digunakan jika pengguna Windows tidak memiliki login pada instans SQL asli dan perlu dipetakan ke pengguna database Microsoft Entra mandiri.
  • Dalam hal ini, user_name yang diizinkan dapat berupa:
  • Pengguna Windows (domain\user).
  • Grup Windows (MyWindowsGroup).
  • Alias Windows (MyWindowsAlias).
  • Hasil perintah ALTER menggantikan user_name lama dengan nama yang sesuai yang ditemukan di MICROSOFT Entra ID berdasarkan SID asli dari user_namelama . Nama yang diubah diganti dan disimpan dalam metadata database:
  • (domain\user) akan diganti dengan Microsoft Entra user@domain.com.
  • (domain\MyWindowsGroup) akan diganti dengan grup Microsoft Entra.
  • (MyWindowsAlias) akan tetap tidak berubah tetapi SID pengguna ini akan diperiksa di ID Microsoft Entra.

Catatan

Jika SID pengguna asli yang dikonversi ke object_ID tidak dapat ditemukan di penyewa ID Microsoft Entra, perintah ALTER USER akan gagal.

  • Untuk melihat pengguna yang diubah, gunakan perintah berikut: SELECT * FROM sys.database_principals;
  • Periksa jenis E yang ditunjukkan pengguna atau X.
  • Ketika NAME digunakan untuk memigrasikan pengguna Windows ke pengguna Microsoft Entra, pembatasan berikut berlaku:
    • LOGIN yang valid harus ditentukan.
    • NAMA akan diperiksa di penyewa ID Microsoft Entra dan hanya dapat:
      • Nama LOGIN.
      • Alias - nama tidak dapat ada di ID Microsoft Entra.
      • Dalam semua kasus lain, sintaks gagal.

Keamanan

Catatan

Pengguna yang memiliki izin ALTER ANY USER dapat mengubah skema default pengguna mana pun. Pengguna yang memiliki skema yang diubah mungkin tanpa sadar memilih data dari tabel yang salah atau menjalankan kode dari skema yang salah.

Izin

Untuk mengubah nama pengguna memerlukan izin UBAH PENGGUNA APA PUN.

Untuk mengubah login target pengguna memerlukan izin CONTROL pada database.

Untuk mengubah nama pengguna pengguna yang memiliki izin CONTROL pada database memerlukan izin CONTROL pada database.

Untuk mengubah skema atau bahasa default, diperlukan izin UBAH pada pengguna. Pengguna dapat mengubah skema atau bahasa default mereka sendiri.

Contoh

Semua contoh dijalankan dalam database pengguna.

J. Mengubah nama pengguna database

Contoh berikut mengubah nama pengguna Mary5 database menjadi Mary51.

ALTER USER Mary5 WITH NAME = Mary51;
GO

B. Mengubah skema default pengguna

Contoh berikut mengubah skema default pengguna Mary51 menjadi Purchasing.

ALTER USER Mary51 WITH DEFAULT_SCHEMA = Purchasing;
GO

C. Mengubah beberapa opsi sekaligus

Contoh berikut mengubah beberapa opsi untuk pengguna database mandiri dalam satu pernyataan. Ganti <new strong password here> dan <old strong password here> dengan nilai Anda sendiri.

ALTER USER Philip
WITH NAME = Philipe
, DEFAULT_SCHEMA = Development
, PASSWORD = '<new strong password here>' OLD_PASSWORD = '<old strong password here>'
, DEFAULT_LANGUAGE= French ;
GO

D. Memetakan pengguna dalam database ke login Microsoft Entra setelah migrasi

Contoh berikut memetakan ulang pengguna, westus/joe ke pengguna Microsoft Entra, joe@westus.com. Contoh ini adalah untuk login yang sudah ada di instans terkelola. Ini perlu dilakukan setelah Anda menyelesaikan migrasi database ke Azure SQL Managed Instance, dan ingin menggunakan login Microsoft Entra untuk mengautentikasi.

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

E. Memetakan pengguna Windows lama dalam database tanpa masuk di Azure SQL Managed Instance ke pengguna Microsoft Entra

Contoh berikut memetakan ulang pengguna, westus/joe tanpa masuk, ke pengguna Microsoft Entra, joe@westus.com. Pengguna federasi harus ada di ID Microsoft Entra.

ALTER USER [westus/joe] FROM EXTERNAL PROVIDER

F. Memetakan alias pengguna ke login Microsoft Entra yang sudah ada

Contoh berikut memetakan ulang nama pengguna, westus\joe ke joe_alias. Login Microsoft Entra yang sesuai dalam kasus ini adalah joe@westus.com.

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

G. Memetakan grup Windows yang dimigrasikan di Azure SQL Managed Instance ke grup Microsoft Entra

Contoh berikut memetakan ulang grup lokal lama, westus\mygroup ke grup mygroup Microsoft Entra dalam instans terkelola. Grup harus ada di ID Microsoft Entra.

ALTER USER [westus\mygroup] WITH LOGIN = mygroup;

* Azure Synapse
Analytics*

 

Azure Synapse Analytics

Sintaks

-- Syntax for Azure Synapse

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

<set_item> ::=
 NAME = new_user_name
 | LOGIN = login_name
 | DEFAULT_SCHEMA = schema_name
[;]

Argumen

user_name

Menentukan nama tempat pengguna diidentifikasi di dalam database ini.

LOGIN = login_name

Memetakan ulang pengguna ke login lain dengan mengubah Pengidentifikasi Keamanan (SID) pengguna agar sesuai dengan SID login.

Jika pernyataan ALTER USER adalah satu-satunya pernyataan dalam batch SQL, Azure SQL Database mendukung klausa WITH LOGIN. Jika pernyataan ALTER USER bukan satu-satunya pernyataan dalam batch SQL atau dijalankan dalam SQL dinamis, klausa WITH LOGIN tidak didukung.

NAME = new_user_name

Menentukan nama baru untuk pengguna ini. new_user_name belum ada di database saat ini.

DEFAULT_SCHEMA = { schema_name | NULL }

Menentukan skema pertama yang akan dicari oleh server ketika menyelesaikan nama objek untuk pengguna ini. Mengatur skema default ke NULL menghapus skema default dari grup Windows. Opsi NULL tidak dapat digunakan dengan pengguna Windows.

Keterangan

Skema default akan menjadi skema pertama yang akan dicari oleh server ketika menyelesaikan nama objek untuk pengguna database ini. Kecuali ditentukan lain, skema default akan menjadi pemilik objek yang dibuat oleh pengguna database ini.

Jika pengguna memiliki skema default, skema default tersebut akan digunakan. Jika pengguna tidak memiliki skema default, tetapi pengguna adalah anggota grup yang memiliki skema default, skema default grup akan digunakan. Jika pengguna tidak memiliki skema default, dan merupakan anggota lebih dari satu grup, skema default untuk pengguna adalah grup Windows dengan principal_id terendah dan skema default yang ditetapkan secara eksplisit. Jika tidak ada skema default yang dapat ditentukan untuk pengguna, skema dbo digunakan.

DEFAULT_SCHEMA dapat diatur ke skema yang saat ini tidak terjadi dalam database. Oleh karena itu, Anda dapat menetapkan DEFAULT_SCHEMA kepada pengguna sebelum skema tersebut dibuat.

DEFAULT_SCHEMA tidak dapat ditentukan untuk pengguna yang dipetakan ke sertifikat, atau kunci asimetris.

Penting

Nilai DEFAULT_SCHEMA diabaikan jika pengguna adalah anggota peran server tetap sysadmin . Semua anggota peran server tetap sysadmin memiliki skema dbodefault .

Klausul WITH LOGIN memungkinkan pememajaan ulang pengguna ke login yang berbeda. Pengguna tanpa login, pengguna yang dipetakan ke sertifikat, atau pengguna yang dipetakan ke kunci asimetris tidak dapat dipetakan ulang dengan klausa ini. Hanya pengguna SQL dan pengguna Windows (atau grup) yang dapat dipetakan ulang. Klausa WITH LOGIN tidak dapat digunakan untuk mengubah jenis pengguna, seperti mengubah akun Windows ke login SQL Server.

Nama pengguna akan secara otomatis diganti namanya menjadi nama masuk jika kondisi berikut ini benar.

  • Tidak ada nama baru yang ditentukan.

  • Nama saat ini berbeda dari nama masuk.

Jika tidak, pengguna tidak akan diganti namanya kecuali pemanggil juga memanggil klausa NAME.

Nama pengguna yang dipetakan ke login SQL Server, sertifikat, atau kunci asimetris tidak boleh berisi karakter garis miring terbalik (\).

Perhatian

Dimulai dengan SQL Server 2005, perilaku skema berubah. Akibatnya, kode yang mengasumsikan bahwa skema setara dengan pengguna database mungkin tidak lagi mengembalikan hasil yang benar. Tampilan katalog lama, termasuk sysobjects, tidak boleh digunakan dalam database di mana salah satu pernyataan DDL berikut pernah digunakan: 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. Dalam database tersebut, Anda harus menggunakan tampilan katalog baru. Tampilan katalog baru memperhitungkan pemisahan prinsipal dan skema yang diperkenalkan di SQL Server 2005. Untuk informasi selengkapnya tentang tampilan katalog, lihat Tampilan Katalog (Transact-SQL).

Keamanan

Catatan

Pengguna yang memiliki izin ALTER ANY USER dapat mengubah skema default pengguna mana pun. Pengguna yang memiliki skema yang diubah mungkin tanpa sadar memilih data dari tabel yang salah atau menjalankan kode dari skema yang salah.

Izin

Untuk mengubah nama pengguna memerlukan izin UBAH PENGGUNA APA PUN.

Untuk mengubah login target pengguna memerlukan izin CONTROL pada database.

Untuk mengubah nama pengguna pengguna yang memiliki izin CONTROL pada database memerlukan izin CONTROL pada database.

Untuk mengubah skema atau bahasa default, diperlukan izin UBAH pada pengguna. Pengguna dapat mengubah skema atau bahasa default mereka sendiri.

Contoh

Semua contoh dijalankan dalam database pengguna.

J. Mengubah nama pengguna database

Contoh berikut mengubah nama pengguna Mary5 database menjadi Mary51.

ALTER USER Mary5 WITH NAME = Mary51;
GO

B. Mengubah skema default pengguna

Contoh berikut mengubah skema default pengguna Mary51 menjadi Purchasing.

ALTER USER Mary51 WITH DEFAULT_SCHEMA = Purchasing;
GO

*Analytics
Sistem Platform (PDW) *

 

Sistem Platform Analisis

Sintaks

-- Syntax for Analytics Platform System

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

<set_item> ::=
 NAME = new_user_name
 | LOGIN = login_name
 | DEFAULT_SCHEMA = schema_name
[;]

Argumen

user_name

Menentukan nama tempat pengguna diidentifikasi di dalam database ini.

LOGIN = login_name

Memetakan ulang pengguna ke login lain dengan mengubah Pengidentifikasi Keamanan (SID) pengguna agar sesuai dengan SID login.

Jika pernyataan ALTER USER adalah satu-satunya pernyataan dalam batch SQL, Azure SQL Database mendukung klausa WITH LOGIN. Jika pernyataan ALTER USER bukan satu-satunya pernyataan dalam batch SQL atau dijalankan dalam SQL dinamis, klausa WITH LOGIN tidak didukung.

NAME = new_user_name

Menentukan nama baru untuk pengguna ini. new_user_name belum ada di database saat ini.

DEFAULT_SCHEMA = { schema_name | NULL }

Menentukan skema pertama yang akan dicari oleh server ketika menyelesaikan nama objek untuk pengguna ini. Mengatur skema default ke NULL menghapus skema default dari grup Windows. Opsi NULL tidak dapat digunakan dengan pengguna Windows.

Keterangan

Skema default akan menjadi skema pertama yang akan dicari oleh server ketika menyelesaikan nama objek untuk pengguna database ini. Kecuali ditentukan lain, skema default akan menjadi pemilik objek yang dibuat oleh pengguna database ini.

Jika pengguna memiliki skema default, skema default tersebut akan digunakan. Jika pengguna tidak memiliki skema default, tetapi pengguna adalah anggota grup yang memiliki skema default, skema default grup akan digunakan. Jika pengguna tidak memiliki skema default, dan merupakan anggota lebih dari satu grup, skema default untuk pengguna adalah grup Windows dengan principal_id terendah dan skema default yang ditetapkan secara eksplisit. Jika tidak ada skema default yang dapat ditentukan untuk pengguna, skema dbo digunakan.

DEFAULT_SCHEMA dapat diatur ke skema yang saat ini tidak terjadi dalam database. Oleh karena itu, Anda dapat menetapkan DEFAULT_SCHEMA kepada pengguna sebelum skema tersebut dibuat.

DEFAULT_SCHEMA tidak dapat ditentukan untuk pengguna yang dipetakan ke sertifikat, atau kunci asimetris.

Penting

Nilai DEFAULT_SCHEMA diabaikan jika pengguna adalah anggota peran server tetap sysadmin . Semua anggota peran server tetap sysadmin memiliki skema dbodefault .

Klausul WITH LOGIN memungkinkan pememajaan ulang pengguna ke login yang berbeda. Pengguna tanpa login, pengguna yang dipetakan ke sertifikat, atau pengguna yang dipetakan ke kunci asimetris tidak dapat dipetakan ulang dengan klausa ini. Hanya pengguna SQL dan pengguna Windows (atau grup) yang dapat dipetakan ulang. Klausa WITH LOGIN tidak dapat digunakan untuk mengubah jenis pengguna, seperti mengubah akun Windows ke login SQL Server.

Nama pengguna akan secara otomatis diganti namanya menjadi nama masuk jika kondisi berikut ini benar.

  • Tidak ada nama baru yang ditentukan.

  • Nama saat ini berbeda dari nama masuk.

Jika tidak, pengguna tidak akan diganti namanya kecuali pemanggil juga memanggil klausa NAME.

Nama pengguna yang dipetakan ke login SQL Server, sertifikat, atau kunci asimetris tidak boleh berisi karakter garis miring terbalik (\).

Perhatian

Dimulai dengan SQL Server 2005, perilaku skema berubah. Akibatnya, kode yang mengasumsikan bahwa skema setara dengan pengguna database mungkin tidak lagi mengembalikan hasil yang benar. Tampilan katalog lama, termasuk sysobjects, tidak boleh digunakan dalam database di mana salah satu pernyataan DDL berikut pernah digunakan: 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. Dalam database tersebut, Anda harus menggunakan tampilan katalog baru. Tampilan katalog baru memperhitungkan pemisahan prinsipal dan skema yang diperkenalkan di SQL Server 2005. Untuk informasi selengkapnya tentang tampilan katalog, lihat Tampilan Katalog (Transact-SQL).

Keamanan

Catatan

Pengguna yang memiliki izin ALTER ANY USER dapat mengubah skema default pengguna mana pun. Pengguna yang memiliki skema yang diubah mungkin tanpa sadar memilih data dari tabel yang salah atau menjalankan kode dari skema yang salah.

Izin

Untuk mengubah nama pengguna memerlukan izin UBAH PENGGUNA APA PUN.

Untuk mengubah login target pengguna memerlukan izin CONTROL pada database.

Untuk mengubah nama pengguna pengguna yang memiliki izin CONTROL pada database memerlukan izin CONTROL pada database.

Untuk mengubah skema atau bahasa default, diperlukan izin UBAH pada pengguna. Pengguna dapat mengubah skema atau bahasa default mereka sendiri.

Contoh

Semua contoh dijalankan dalam database pengguna.

J. Mengubah nama pengguna database

Contoh berikut mengubah nama pengguna Mary5 database menjadi Mary51.

ALTER USER Mary5 WITH NAME = Mary51;
GO

B. Mengubah skema default pengguna

Contoh berikut mengubah skema default pengguna Mary51 menjadi Purchasing.

ALTER USER Mary51 WITH DEFAULT_SCHEMA = Purchasing;
GO