ALTER USER (Transact-SQL)
Mengganti nama pengguna database atau mengubah skema defaultnya.
Pilih produk
Di baris berikut, pilih nama produk yang Anda minati, dan hanya informasi produk tersebut 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 akan 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 mandiri dan sp_migrate_user_to_contained (SQL T-SQL).
= OLD_PASSWORD 'oldpassword'Berlakuuntuk: 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 kemudian 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 = [ ON | NONAKTIF ] 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 untuk 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 akan menjadi 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 dbodefault .
Anda bisa mengubah nama pengguna yang dipetakan ke login atau grup Windows hanya saat SID nama pengguna baru cocok dengan SID yang direkam dalam database. Pemeriksaan ini membantu mencegah spoofing Windows masuk dalam database.
Klausul WITH LOGIN memungkinkan perombakan 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 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 pada SQL Server 2005. Untuk informasi selengkapnya tentang tampilan katalog, lihat Tampilan Katalog (Transact-SQL).
Keamanan
Catatan
Pengguna yang memiliki izin UBAH PENGGUNA APA PUN 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 yang diautentikasi 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 Mandiri dan sp_migrate_user_to_contained (SQL Transact).
= OLD_PASSWORD 'oldpassword'Berlakuuntuk: 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 = [ ON | NONAKTIF ] 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 untuk 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 akan menjadi 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 dbodefault .
Anda bisa mengubah nama pengguna yang dipetakan ke Windows masuk atau grup 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 pemeretaan 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 klausul 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 login 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 penelepon 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 sysobject, 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 pada SQL Server 2005. Untuk informasi selengkapnya tentang tampilan katalog, lihat Tampilan Katalog (SQL Transact).
Keamanan
Catatan
Pengguna yang memiliki izin UBAH PENGGUNA APA PUN 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 menerapkan ke pengguna dengan login Azure AD: DEFAULT_SCHEMA = { schemaName | NULL } dan DEFAULT_LANGUAGE = { NONE | lcid | language name | language alias }
Ada ekstensi sintaks baru yang ditambahkan untuk membantu memetakan ulang pengguna dalam database yang dimigrasikan ke Azure SQL Managed Instance. Sintaks ALTER USER membantu memetakan pengguna database di domain federasi dan disinkronkan dengan Azure AD, untuk Azure AD masuk.
-- 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 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 =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 akan 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 mandiri dan sp_migrate_user_to_contained (SQL T-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 kemudian 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 = [ ON | NONAKTIF ]
Menekan pemeriksaan metadata kriptografi pada server dalam operasi penyalinan massal. Ini memungkinkan pengguna untuk 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 akan menjadi 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 dbodefault .
Anda bisa mengubah nama pengguna yang dipetakan ke login atau grup Windows hanya saat SID nama pengguna baru cocok dengan SID yang direkam dalam database. Pemeriksaan ini membantu mencegah spoofing Windows masuk dalam database.
Klausul WITH LOGIN memungkinkan perombakan 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 saat mengubah pengguna Windows menjadi pengguna Azure AD.
Catatan
Aturan berikut ini tidak berlaku untuk Windows pengguna di Azure SQL Managed Instance karena kami tidak mendukung pembuatan login Windows di Azure SQL Managed Instance. Opsi WITH LOGIN hanya dapat digunakan jika Azure AD login 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 pada SQL Server 2005. Untuk informasi selengkapnya tentang tampilan katalog, lihat Tampilan Katalog (SQL Transact).
Keterangan untuk pengguna Windows di SQL lokal yang dimigrasikan ke Azure SQL Managed Instance
Keterangan ini berlaku untuk mengautentikasi sebagai Windows pengguna yang telah digabungkan dan disinkronkan dengan Azure AD.
Catatan
Admin Azure AD untuk fungsionalitas Azure SQL Managed Instance setelah pembuatan berubah. Untuk informasi selengkapnya, lihat Fungsionalitas admin Azure AD baru untuk MI.
- Validasi pengguna atau grup Windows yang dipetakan ke Azure AD dilakukan secara default melalui API Graph di semua versi sintaks ALTER USER yang digunakan untuk tujuan migrasi.
- Pengguna lokal yang diberi alias (menggunakan nama yang berbeda dari akun Windows asli) akan menyimpan nama alias.
- Untuk autentikasi Azure AD, parameter LOGIN hanya berlaku untuk Azure SQL Managed Instance dan tidak dapat digunakan dengan SQL Database.
- Untuk melihat login untuk Azure AD Principals, gunakan perintah berikut:
select * from sys.server_principals. - Periksa jenis login yang ditunjukkan adalah
EatauX. - Opsi PASSWORD tidak dapat digunakan untuk pengguna Azure AD.
- Dalam semua kasus migrasi, peran dan izin Windows pengguna atau grup akan secara otomatis ditransfer ke pengguna atau grup Azure AD baru.
- Ekstensi sintaks baru, FROM EXTERNAL PROVIDER tersedia untuk mengubah pengguna dan grup Windows dari SQL lokal ke pengguna dan grup Azure AD. Domain Windows harus digabungkan dengan Azure AD dan semua anggota domain Windows harus ada di Azure AD 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 Azure AD 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 Azure AD berdasarkan SID asli dari userName lama. Nama yang diubah diganti dan disimpan dalam metadata database:
- (domain\user) akan diganti dengan Azure AD user@domain.com.
- (domain\MyWidnowsGroup) akan diganti dengan grup Azure AD.
- (MyWindowsAlias) akan tetap tidak berubah tetapi SID pengguna ini akan diperiksa Azure AD.
Catatan
Jika SID pengguna asli yang dikonversi ke objectID tidak dapat ditemukan di Azure AD, perintah ALTER USER akan gagal.
- Untuk melihat pengguna yang diubah, gunakan perintah berikut:
select * from sys.database_principals - Periksa jenis
Eyang ditunjukkan pengguna atauX. - Saat NAME digunakan untuk memigrasikan Windows pengguna ke pengguna Azure AD, pembatasan berikut berlaku:
- LOGIN yang valid harus ditentukan.
- NAMA akan diperiksa Azure AD dan hanya dapat berupa:
- Nama LOGIN.
- Alias - nama tidak dapat ada di Azure AD.
- Dalam semua kasus lain, sintaks akan gagal.
Keamanan
Catatan
Pengguna yang memiliki izin UBAH PENGGUNA APA PUN 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 Azure AD setelah migrasi
Contoh berikut memetakan ulang pengguna, westus/joe ke pengguna Azure AD, joe@westus.com. Contoh ini 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 Azure AD untuk mengautentikasi.
ALTER USER [westus/joe] WITH LOGIN = joe@westus.com
E. Memetakan pengguna Windows lama dalam database tanpa masuk Azure SQL Managed Instance ke pengguna Azure AD
Contoh berikut memetakan ulang pengguna, westus/joe tanpa login, ke pengguna Azure AD, joe@westus.com. Pengguna federasi harus ada di Azure AD.
ALTER USER [westus/joe] FROM EXTERNAL PROVIDER
F. Memetakan alias pengguna ke login Azure AD yang sudah ada
Contoh berikut memetakan ulang nama pengguna, westus\joe menjadi joe_alias. Login Azure AD yang sesuai dalam hal ini adalah joe@westus.com.
ALTER USER [westus/joe] WITH LOGIN = joe@westus.com, name= joe_alias
G. Memetakan grup Windows yang dimigrasikan dalam Azure SQL Managed Instance ke grup Azure AD
Contoh berikut memetakan ulang grup lokal lama, westus\mygroup ke grup mygroup Azure AD dalam instans terkelola. Grup harus ada di Azure AD.
ALTER USER [westus\mygroup] WITH LOGIN = mygroup
Lihat juga
* Azure Synapse
Analitik *
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 akan menjadi 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 dbodefault .
Klausul WITH LOGIN memungkinkan perombakan 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 pada SQL Server 2005. Untuk informasi selengkapnya tentang tampilan katalog, lihat Tampilan Katalog (Transact-SQL).
Keamanan
Catatan
Pengguna yang memiliki izin UBAH PENGGUNA APA PUN 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
* Analitik
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 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 =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 akan 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 akan menjadi 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 dbodefault .
Klausul WITH LOGIN memungkinkan perombakan 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 pada SQL Server 2005. Untuk informasi selengkapnya tentang tampilan katalog, lihat Tampilan Katalog (Transact-SQL).
Keamanan
Catatan
Pengguna yang memiliki izin UBAH PENGGUNA APA PUN 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
