ALTER USER (Transact-SQL)
Mengganti nama pengguna database atau mengubah skema defaultnya.
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 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 ]
Argumen
userName Menentukan nama tempat pengguna diidentifikasi di dalam database ini.
LOGIN = loginName Memetakan ulang pengguna ke login lain dengan mengubah Pengidentifikasi Keamanan (SID) pengguna agar sesuai dengan SID login.
NAME = newUserName Menentukan nama baru untuk pengguna ini. newUserName belum boleh terjadi di database saat ini.
= DEFAULT_SCHEMA { schemaName | 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.
KATA SANDI = 'kata sandi' Berlaku untuk: SQL Server 2012 (11.x) dan yang lebih baru, 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 yang lebih baru, 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 | <alias> bahasa }Berlaku untuk: SQL Server 2012 (11.x) dan 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 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 | OFF ] Berlaku untuk: SQL Server 2016 (13.x) dan yang lebih baru, 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 Memigrasikan Data Sensitif yang Dilindungi oleh 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 akan 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 dbo
default .
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 remapping 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 klausul 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 klausul 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
Contoh berikut mengubah beberapa opsi untuk pengguna database mandiri dalam satu pernyataan.
Berlaku untuk: SQL Server 2012 (11.x) dan yang lebih baru.
ALTER USER Philip
WITH NAME = Philipe
, DEFAULT_SCHEMA = Development
, PASSWORD = 'W1r77TT98%ab@#' OLD_PASSWORD = 'New Devel0per'
, 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
Lihat juga
* SQL Database *
SQL Database
Sintaks
-- 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
Argumen
userName Menentukan nama tempat pengguna diidentifikasi di dalam database ini.
LOGIN = loginName 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 klausul WITH LOGIN. Jika pernyataan ALTER USER bukan satu-satunya pernyataan dalam batch SQL atau dijalankan dalam SQL dinamis, klausa WITH LOGIN tidak didukung.
NAME = newUserName Menentukan nama baru untuk pengguna ini. newUserName belum boleh terjadi di database saat ini.
= DEFAULT_SCHEMA { schemaName | 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.
KATA SANDI = 'kata sandi' Berlaku untuk: SQL Server 2012 (11.x) dan yang lebih baru, 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 yang lebih baru, 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 | OFF ] Berlaku untuk: SQL Server 2016 (13.x) dan yang lebih baru, 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 Memigrasikan Data Sensitif yang Dilindungi oleh 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 akan 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 dbo
default .
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 remapping 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.
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 klausul 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
Contoh berikut mengubah beberapa opsi untuk pengguna database mandiri dalam satu pernyataan.
ALTER USER Philip
WITH NAME = Philipe
, DEFAULT_SCHEMA = Development
, PASSWORD = 'W1r77TT98%ab@#' OLD_PASSWORD = 'New Devel0per';
GO
Lihat juga
* 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 = { schemaName | 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 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> }
Argumen
userName Menentukan nama tempat pengguna diidentifikasi di dalam database ini.
LOGIN = loginName 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 klausul WITH LOGIN. Jika pernyataan ALTER USER bukan satu-satunya pernyataan dalam batch SQL atau dijalankan dalam SQL dinamis, klausa WITH LOGIN tidak didukung.
NAME = newUserName Menentukan nama baru untuk pengguna ini. newUserName belum boleh terjadi di database saat ini.
= DEFAULT_SCHEMA { schemaName | 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.
KATA SANDI = '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 | <alias> 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 Memigrasikan Data Sensitif yang Dilindungi oleh 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 akan 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 dbo
default .
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 remapping 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 klausul 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
atauX
. - 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.
- Ekstensi sintaks baru, DARI PENYEDIA EKSTERNAL tersedia 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. SintaksIS PENYEDIA EKSTERNAL FROM 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, userName yang diizinkan dapat berupa:
- Pengguna Widows (domain\user).
- Grup Windows (MyWidnowsGroup).
- Alias Windows (MyWindowsAlias).
- Hasil perintah ALTER menggantikan userName lama dengan nama yang sesuai yang ditemukan di ID Microsoft Entra berdasarkan SID asli userName lama. Nama yang diubah diganti dan disimpan dalam metadata database:
- (domain\user) akan diganti dengan Microsoft Entra user@domain.com.
- (domain\MyWidnowsGroup) 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 objectID tidak dapat ditemukan di MICROSOFT Entra ID, perintah ALTER USER akan gagal.
- Untuk melihat pengguna yang diubah, gunakan perintah berikut:
select * from sys.database_principals
- Periksa jenis
E
yang ditunjukkan pengguna atauX
. - Ketika NAME digunakan untuk memigrasikan pengguna Windows ke pengguna Microsoft Entra, pembatasan berikut berlaku:
- LOGIN yang valid harus ditentukan.
- NAMA akan diperiksa di ID Microsoft Entra dan hanya dapat:
- Nama LOGIN.
- Alias - nama tidak dapat ada di ID Microsoft Entra.
- Dalam semua kasus lain, sintaks akan 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.
ALTER USER Philip
WITH NAME = Philipe
, DEFAULT_SCHEMA = Development
, PASSWORD = 'W1r77TT98%ab@#' OLD_PASSWORD = 'New Devel0per'
, 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
Lihat juga
* Azure Synapse
Analytics*
Azure Synapse Analytics
Sintaks
-- Syntax for Azure Synapse
ALTER USER userName
WITH <set_item> [ ,...n ]
<set_item> ::=
NAME = newUserName
| LOGIN = loginName
| DEFAULT_SCHEMA = schema_name
[;]
Argumen
userName Menentukan nama tempat pengguna diidentifikasi di dalam database ini.
LOGIN = loginName 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 klausul WITH LOGIN. Jika pernyataan ALTER USER bukan satu-satunya pernyataan dalam batch SQL atau dijalankan dalam SQL dinamis, klausa WITH LOGIN tidak didukung.
NAME = newUserName Menentukan nama baru untuk pengguna ini. newUserName belum boleh terjadi di database saat ini.
= DEFAULT_SCHEMA { schemaName | 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 akan 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 dbo
default .
Klausul WITH LOGIN memungkinkan remapping 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 klausul 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
Lihat juga
*Analytics
Sistem Platform (PDW) *
Sistem Platform Analisis
Sintaks
-- Syntax for Analytics Platform System
ALTER USER userName
WITH <set_item> [ ,...n ]
<set_item> ::=
NAME = newUserName
| LOGIN = loginName
| DEFAULT_SCHEMA = schema_name
[;]
Argumen
userName Menentukan nama tempat pengguna diidentifikasi di dalam database ini.
LOGIN = loginName 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 klausul WITH LOGIN. Jika pernyataan ALTER USER bukan satu-satunya pernyataan dalam batch SQL atau dijalankan dalam SQL dinamis, klausa WITH LOGIN tidak didukung.
NAME = newUserName Menentukan nama baru untuk pengguna ini. newUserName belum boleh terjadi di database saat ini.
= DEFAULT_SCHEMA { schemaName | 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 akan 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 dbo
default .
Klausul WITH LOGIN memungkinkan remapping 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 klausul 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