UBAH LOGIN (Transact-SQL)

Mengubah properti akun masuk SQL Server.

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 LOGIN login_name
    {
    <status_option>
    | WITH <set_option> [ ,... ]
    | <cryptographic_credential_option>
    }
[;]

<status_option> ::=
        ENABLE | DISABLE

<set_option> ::=
    PASSWORD = 'password' | hashed_password HASHED
    [
      OLD_PASSWORD = 'oldpassword'
      | <password_option> [<password_option> ]
    ]
    | DEFAULT_DATABASE = database
    | DEFAULT_LANGUAGE = language
    | NAME = login_name
    | CHECK_POLICY = { ON | OFF }
    | CHECK_EXPIRATION = { ON | OFF }
    | CREDENTIAL = credential_name
    | NO CREDENTIAL

<password_option> ::=
    MUST_CHANGE | UNLOCK

<cryptographic_credentials_option> ::=
    ADD CREDENTIAL credential_name
  | DROP CREDENTIAL credential_name

Argumen

login_name Menentukan nama login SQL Server yang sedang diubah. Login domain harus diapit dalam tanda kurung dalam format [domain\user].

AKTIFKAN | NONAKTIFKAN Mengaktifkan atau menonaktifkan login ini. Menonaktifkan login tidak memengaruhi perilaku login yang sudah tersambung. (Gunakan KILL pernyataan untuk mengakhiri koneksi yang ada.) Login yang dinonaktifkan mempertahankan izin mereka dan masih dapat ditiru.

PASSWORD ='password' Hanya berlaku untuk login SQL Server. Menentukan kata sandi untuk login yang sedang diubah. Kata sandi peka huruf besar/kecil.

KATA SANDI =hashed_password Hanya berlaku untuk kata kunci HASHED. Menentukan nilai hash kata sandi untuk login yang sedang dibuat.

Penting

Saat login (atau pengguna database mandiri) tersambung dan diautentikasi, koneksi menyimpan informasi identitas tentang login. Untuk login Autentikasi Windows, ini mencakup informasi tentang keanggotaan di grup Windows. Identitas login tetap diautentikasi selama koneksi dipertahankan. Untuk memaksa perubahan identitas, seperti reset kata sandi atau perubahan keanggotaan grup Windows, login harus keluar dari otoritas autentikasi (Windows atau SQL Server), dan masuk lagi. Anggota peran server tetap sysadmin atau login apa pun dengan izin ALTER ANY CONNECTION dapat menggunakan perintah KILL untuk mengakhiri koneksi dan memaksa login untuk terhubung kembali. SQL Server Management Studio dapat menggunakan kembali informasi koneksi saat membuka beberapa koneksi ke Object Explorer dan Editor Kueri jendela. Tutup semua koneksi untuk memaksa koneksi ulang.

HASHED Hanya berlaku untuk login SQL Server. Menentukan bahwa kata sandi yang dimasukkan setelah argumen PASSWORD sudah di-hash. Jika opsi ini tidak dipilih, kata sandi di-hash sebelum disimpan dalam database. Opsi ini hanya boleh digunakan untuk sinkronisasi masuk antara dua server. Jangan gunakan opsi HASHED untuk mengubah kata sandi secara rutin.

OLD_PASSWORD ='oldpassword' Hanya berlaku untuk login SQL Server. Kata sandi saat ini dari login tempat kata sandi baru akan ditetapkan. Kata sandi peka huruf besar/kecil.

MUST_CHANGE Hanya berlaku untuk login SQL Server. Jika opsi ini disertakan, SQL Server akan meminta kata sandi yang diperbarui saat pertama kali login yang diubah digunakan.

=DEFAULT_DATABASE database Menentukan database default yang akan ditetapkan ke login.

=DEFAULT_LANGUAGE bahasa Menentukan bahasa default yang akan ditetapkan ke login. Bahasa default untuk semua login SQL Database adalah bahasa Inggris dan tidak dapat diubah. Bahasa sa default login di SQL Server di Linux, adalah bahasa Inggris tetapi dapat diubah.

NAME = login_name Nama baru login yang sedang diganti namanya. Jika ini adalah login Windows, SID prinsipal Windows yang sesuai dengan nama baru harus cocok dengan SID yang terkait dengan login di SQL Server. Nama baru login SQL Server tidak boleh berisi karakter garis miring terbelakang (\).

CHECK_EXPIRATION = { AKTIF | OFF } Hanya berlaku untuk login SQL Server. Menentukan apakah kebijakan kedaluwarsa kata sandi harus diberlakukan pada login ini. Nilai defaultnya adalah NONAKTIF.

= CHECK_POLICY { ON | OFF } Hanya berlaku untuk login SQL Server. Menentukan bahwa kebijakan kata sandi Windows komputer tempat SQL Server berjalan harus diberlakukan pada login ini. Nilai defaultnya adalah AKTIF.

CREDENTIAL = credential_name Nama kredensial yang akan dipetakan ke login SQL Server. Kredensial harus sudah ada di server. Untuk informasi selengkapnya, lihat Kredensial. Kredensial tidak dapat dipetakan ke sa login.

TIDAK ADA KREDENSIAL Menghapus pemetaan masuk yang ada ke kredensial server. Untuk informasi selengkapnya, lihat Kredensial.

UNLOCK hanya berlaku untuk login SQL Server. Menentukan bahwa login yang dikunci harus dibuka kuncinya.

ADD CREDENTIAL Menambahkan kredensial penyedia Extensible Key Management (EKM) ke login. Untuk informasi selengkapnya, lihat Extensible Key Management (EKM).

DROP CREDENTIAL Menghapus kredensial penyedia Extensible Key Management (EKM) dari login. Untuk informasi selengkapnya, lihat [Extensible Key Management (EKM)] (.. /.. /relational-databases/security/encryption/extensible-key-management-ekm.md).

Keterangan

Ketika CHECK_POLICY diatur ke AKTIF, argumen HASHED tidak dapat digunakan.

Saat CHECK_POLICY diubah ke AKTIF, perilaku berikut terjadi:

  • Riwayat kata sandi diinisialisasi dengan nilai hash kata sandi saat ini.

    Saat CHECK_POLICY diubah ke NONAKTIF, perilaku berikut terjadi:

  • CHECK_EXPIRATION juga diatur ke NONAKTIF.

  • Riwayat kata sandi dihapus.

  • Nilai lockout_time diatur ulang.

Jika MUST_CHANGE ditentukan, CHECK_EXPIRATION dan CHECK_POLICY harus diatur ke AKTIF. Jika tidak, pernyataan akan gagal.

Jika CHECK_POLICY diatur ke NONAKTIF, CHECK_EXPIRATION tidak dapat diatur ke AKTIF. Pernyataan UBAH LOGIN yang memiliki kombinasi opsi ini akan gagal.

Anda tidak dapat menggunakan ALTER LOGIN dengan argumen DISABLE untuk menolak akses ke grup Windows. Misalnya, ALTER LOGIN [domain\group] DISABLE akan mengembalikan pesan kesalahan berikut:

"Msg 15151, Level 16, State 1, Line 1 "Cannot alter the login '*Domain\Group*', because it does not exist or you do not have permission."

Ini memang disengaja.

Di SQL Database, data masuk yang diperlukan untuk mengautentikasi koneksi dan aturan firewall tingkat server untuk sementara di-cache di setiap database. Cache ini disegarkan secara berkala. Untuk memaksa refresh cache autentikasi dan memastikan bahwa database memiliki versi terbaru tabel login, jalankan DBCC FLUSHAUTHCACHE.

Izin

Memerlukan izin UBAH LOGIN APA PUN.

Jika opsi KREDENSIAL digunakan, juga memerlukan izin UBAH INFO MASUK APA PUN.

Jika login yang sedang diubah adalah anggota peran server tetap sysadmin atau penerima izin SERVER KONTROL, juga memerlukan izin SERVER KONTROL saat membuat perubahan berikut:

  • Mereset kata sandi tanpa menyediakan kata sandi lama.
  • Mengaktifkan MUST_CHANGE, CHECK_POLICY, atau CHECK_EXPIRATION.
  • Mengubah nama login.
  • Mengaktifkan atau menonaktifkan login.
  • Memetakan login ke kredensial yang berbeda.

Prinsipal dapat mengubah kata sandi, bahasa default, dan database default untuk loginnya sendiri.

Contoh

J. Mengaktifkan login yang dinonaktifkan

Contoh berikut mengaktifkan login Mary5.

ALTER LOGIN Mary5 ENABLE;

B. Mengubah kata sandi login

Contoh berikut mengubah kata sandi masuk Mary5 ke kata sandi yang kuat.

ALTER LOGIN Mary5 WITH PASSWORD = '<enterStrongPasswordHere>';

C. Mengubah kata sandi login saat masuk sebagai login

Jika Anda mencoba mengubah kata sandi login yang saat ini Anda gunakan untuk masuk dan Anda tidak memiliki ALTER ANY LOGIN izin, Anda harus menentukan opsi tersebut OLD_PASSWORD .

ALTER LOGIN Mary5 WITH PASSWORD = '<enterStrongPasswordHere>' OLD_PASSWORD = '<oldWeakPasswordHere>';

D. Mengubah nama login

Contoh berikut mengubah nama masuk Mary5 menjadi John2.

ALTER LOGIN Mary5 WITH NAME = John2;

E. Memetakan login ke kredensial

Contoh berikut memetakan login John2 ke kredensial Custodian04.

ALTER LOGIN John2 WITH CREDENTIAL = Custodian04;

F. Memetakan login ke kredensial Manajemen Kunci yang Dapat Diperluas

Contoh berikut memetakan login Mary5 ke kredensial EKMProvider1EKM .

ALTER LOGIN Mary5
ADD CREDENTIAL EKMProvider1;
GO

F. Membuka kunci login

Untuk membuka kunci login SQL Server, jalankan pernyataan berikut, ganti **** dengan kata sandi akun yang diinginkan.

ALTER LOGIN [Mary5] WITH PASSWORD = '****' UNLOCK ;
GO

Untuk membuka kunci login tanpa mengubah kata sandi, matikan kebijakan pemeriksaan, lalu aktifkan lagi.

ALTER LOGIN [Mary5] WITH CHECK_POLICY = OFF;
ALTER LOGIN [Mary5] WITH CHECK_POLICY = ON;
GO

G. Mengubah kata sandi login menggunakan HASHED

Contoh berikut mengubah kata sandi TestUser login ke nilai yang sudah di-hash.

ALTER LOGIN TestUser WITH
PASSWORD = 0x01000CF35567C60BFB41EBDE4CF700A985A13D773D6B45B90900 HASHED ;
GO

Lihat Juga

* SQL Database *

 

SQL Database

SQL Server

Sintaks

-- Syntax for Azure SQL Database

ALTER LOGIN login_name
  {
      <status_option>
    | WITH <set_option> [ ,.. .n ]
  }
[;]

<status_option> ::=
    ENABLE | DISABLE

<set_option> ::=
    PASSWORD ='password'
    [
      OLD_PASSWORD ='oldpassword'
    ]
    | NAME = login_name

Argumen

login_name Menentukan nama login SQL Server yang sedang diubah. Login domain harus diapit dalam tanda kurung dalam format [domain\user].

AKTIFKAN | NONAKTIFKAN Mengaktifkan atau menonaktifkan login ini. Menonaktifkan login tidak memengaruhi perilaku login yang sudah tersambung. (Gunakan KILL pernyataan untuk mengakhiri koneksi yang ada.) Login yang dinonaktifkan mempertahankan izin mereka dan masih dapat ditiru.

PASSWORD ='password' Hanya berlaku untuk login SQL Server. Menentukan kata sandi untuk login yang sedang diubah. Kata sandi peka huruf besar/kecil.

Koneksi yang terus aktif ke SQL Database memerlukan autentikasi ulang (dilakukan oleh Mesin Database) setidaknya setiap 10 jam. Mesin Database mencoba otorisasi ulang menggunakan kata sandi yang awalnya dikirimkan dan tidak ada input pengguna yang diperlukan. Untuk alasan performa, ketika kata sandi diatur ulang di SQL Database, koneksi tidak akan diautentikasi ulang, bahkan jika koneksi diatur ulang karena pengumpulan koneksi. Ini berbeda dari perilaku SQL Server lokal. Jika kata sandi telah diubah sejak koneksi awalnya diotorisasi, koneksi harus dihentikan dan koneksi baru yang dibuat menggunakan kata sandi baru. Pengguna dengan izin KILL DATABASE CONNECTION dapat secara eksplisit mengakhiri koneksi ke SQL Database dengan menggunakan perintah KILL. Untuk informasi selengkapnya, lihat KILL.

Penting

Saat login (atau pengguna database mandiri) tersambung dan diautentikasi, koneksi menyimpan informasi identitas tentang login. Untuk login Autentikasi Windows, ini mencakup informasi tentang keanggotaan di grup Windows. Identitas login tetap diautentikasi selama koneksi dipertahankan. Untuk memaksa perubahan identitas, seperti reset kata sandi atau perubahan keanggotaan grup Windows, login harus keluar dari otoritas autentikasi (Windows atau SQL Server), dan masuk lagi. Anggota peran server tetap sysadmin atau login apa pun dengan izin ALTER ANY CONNECTION dapat menggunakan perintah KILL untuk mengakhiri koneksi dan memaksa login untuk terhubung kembali. SQL Server Management Studio dapat menggunakan kembali informasi koneksi saat membuka beberapa koneksi ke Object Explorer dan Editor Kueri jendela. Tutup semua koneksi untuk memaksa koneksi ulang.

OLD_PASSWORD ='oldpassword' Hanya berlaku untuk login SQL Server. Kata sandi saat ini dari login tempat kata sandi baru akan ditetapkan. Kata sandi peka huruf besar/kecil.

NAME = login_name Nama baru login yang sedang diganti namanya. Jika ini adalah login Windows, SID prinsipal Windows yang sesuai dengan nama baru harus cocok dengan SID yang terkait dengan login di SQL Server. Nama baru login SQL Server tidak boleh berisi karakter garis miring terbelakang (\).

Keterangan

Di SQL Database, data masuk yang diperlukan untuk mengautentikasi koneksi dan aturan firewall tingkat server untuk sementara di-cache di setiap database. Cache ini disegarkan secara berkala. Untuk memaksa refresh cache autentikasi dan memastikan bahwa database memiliki versi terbaru tabel login, jalankan DBCC FLUSHAUTHCACHE.

Izin

Memerlukan izin UBAH LOGIN APA PUN.

Jika login yang sedang diubah adalah anggota peran server tetap sysadmin atau penerima izin SERVER KONTROL, juga memerlukan izin SERVER KONTROL saat membuat perubahan berikut:

  • Mereset kata sandi tanpa menyediakan kata sandi lama.
  • Mengubah nama login.
  • Mengaktifkan atau menonaktifkan login.
  • Memetakan login ke kredensial yang berbeda.

Prinsipal dapat mengubah kata sandi untuk loginnya sendiri.

Contoh

Contoh-contoh ini juga mencakup contoh untuk menggunakan produk SQL lainnya. Silakan lihat argumen mana yang didukung di atas.

J. Mengaktifkan login yang dinonaktifkan

Contoh berikut mengaktifkan login Mary5.

ALTER LOGIN Mary5 ENABLE;

B. Mengubah kata sandi login

Contoh berikut mengubah kata sandi masuk Mary5 ke kata sandi yang kuat.

ALTER LOGIN Mary5 WITH PASSWORD = '<enterStrongPasswordHere>';

C. Mengubah nama login

Contoh berikut mengubah nama masuk Mary5 menjadi John2.

ALTER LOGIN Mary5 WITH NAME = John2;

D. Memetakan login ke kredensial

Contoh berikut memetakan login John2 ke kredensial Custodian04.

ALTER LOGIN John2 WITH CREDENTIAL = Custodian04;

E. Memetakan login ke kredensial Manajemen Kunci yang Dapat Diperluas

Contoh berikut memetakan login Mary5 ke kredensial EKMProvider1EKM .

Berlaku untuk: SQL Server 2008 (10.0.x) dan yang lebih baru.

ALTER LOGIN Mary5
ADD CREDENTIAL EKMProvider1;
GO

F. Mengubah kata sandi login menggunakan HASHED

Contoh berikut mengubah kata sandi TestUser login ke nilai yang sudah di-hash.

Berlaku untuk: SQL Server 2008 (10.0.x) dan yang lebih baru.

ALTER LOGIN TestUser WITH
PASSWORD = 0x01000CF35567C60BFB41EBDE4CF700A985A13D773D6B45B90900 HASHED ;
GO

Lihat Juga

* SQL Managed Instance *

 

Instans Terkelola Azure SQL

Sintaks

-- Syntax for SQL Server and Azure SQL Managed Instance

ALTER LOGIN login_name
    {
    <status_option>
    | WITH <set_option> [ ,... ]
    | <cryptographic_credential_option>
    }
[;]

<status_option> ::=
        ENABLE | DISABLE

<set_option> ::=
    PASSWORD = 'password' | hashed_password HASHED
    [
      OLD_PASSWORD = 'oldpassword'
      | <password_option> [<password_option> ]
    ]
    | DEFAULT_DATABASE = database
    | DEFAULT_LANGUAGE = language
    | NAME = login_name
    | CHECK_POLICY = { ON | OFF }
    | CHECK_EXPIRATION = { ON | OFF }
    | CREDENTIAL = credential_name
    | NO CREDENTIAL

<password_option> ::=
    MUST_CHANGE | UNLOCK

<cryptographic_credentials_option> ::=
    ADD CREDENTIAL credential_name
  | DROP CREDENTIAL credential_name
-- Syntax for Azure SQL Managed Instance using Microsoft Entra logins


ALTER LOGIN login_name
  {
      <status_option>
    | WITH <set_option> [ ,.. .n ]
  }
[;]

<status_option> ::=
    ENABLE | DISABLE

<set_option> ::=
     DEFAULT_DATABASE = database
   | DEFAULT_LANGUAGE = language

Argumen

Argumen yang berlaku untuk login SQL dan Microsoft Entra

login_name Menentukan nama login SQL Server yang sedang diubah. Login Microsoft Entra harus ditentukan sebagai user@domain. Misalnya, john.smith@contoso.com, atau sebagai grup Microsoft Entra atau nama aplikasi. Untuk masuk Microsoft Entra, login_name harus sesuai dengan login Microsoft Entra yang sudah ada yang dibuat dalam database master.

AKTIFKAN | NONAKTIFKAN Mengaktifkan atau menonaktifkan login ini. Menonaktifkan login tidak memengaruhi perilaku login yang sudah tersambung. (Gunakan KILL pernyataan untuk mengakhiri koneksi yang ada.) Login yang dinonaktifkan mempertahankan izin mereka dan masih dapat ditiru.

=DEFAULT_DATABASE database Menentukan database default yang akan ditetapkan ke login.

=DEFAULT_LANGUAGE bahasa Menentukan bahasa default yang akan ditetapkan ke login. Bahasa default untuk semua login SQL Database adalah bahasa Inggris dan tidak dapat diubah. Bahasa sa default login di SQL Server di Linux, adalah bahasa Inggris tetapi dapat diubah.

Argumen hanya berlaku untuk login SQL

PASSWORD ='password' Hanya berlaku untuk login SQL Server. Menentukan kata sandi untuk login yang sedang diubah. Kata sandi peka huruf besar/kecil. Kata sandi juga tidak berlaku saat digunakan dengan login eksternal, seperti masuk Microsoft Entra.

Koneksi yang terus aktif ke SQL Database memerlukan autentikasi ulang (dilakukan oleh Mesin Database) setidaknya setiap 10 jam. Mesin Database mencoba otorisasi ulang menggunakan kata sandi yang awalnya dikirimkan dan tidak ada input pengguna yang diperlukan. Untuk alasan performa, ketika kata sandi diatur ulang di SQL Database, koneksi tidak akan diautentikasi ulang, bahkan jika koneksi diatur ulang karena pengumpulan koneksi. Ini berbeda dari perilaku SQL Server lokal. Jika kata sandi telah diubah sejak koneksi awalnya diotorisasi, koneksi harus dihentikan dan koneksi baru yang dibuat menggunakan kata sandi baru. Pengguna dengan izin KILL DATABASE CONNECTION dapat secara eksplisit mengakhiri koneksi ke SQL Database dengan menggunakan perintah KILL. Untuk informasi selengkapnya, lihat KILL.

KATA SANDI =hashed_password Hanya berlaku untuk kata kunci HASHED. Menentukan nilai hash kata sandi untuk login yang sedang dibuat.

HASHED Hanya berlaku untuk login SQL Server. Menentukan bahwa kata sandi yang dimasukkan setelah argumen PASSWORD sudah di-hash. Jika opsi ini tidak dipilih, kata sandi di-hash sebelum disimpan dalam database. Opsi ini hanya boleh digunakan untuk sinkronisasi masuk antara dua server. Jangan gunakan opsi HASHED untuk mengubah kata sandi secara rutin.

OLD_PASSWORD ='oldpassword' Hanya berlaku untuk login SQL Server. Kata sandi saat ini dari login tempat kata sandi baru akan ditetapkan. Kata sandi peka huruf besar/kecil.

MUST_CHANGE
Hanya berlaku untuk login SQL Server. Jika opsi ini disertakan, SQL Server akan meminta kata sandi yang diperbarui saat pertama kali login yang diubah digunakan.

NAME = login_name Nama baru login yang sedang diganti namanya. Jika login adalah login Windows, SID prinsipal Windows yang sesuai dengan nama baru harus cocok dengan SID yang terkait dengan login di SQL Server. Nama baru login SQL Server tidak boleh berisi karakter garis miring terbelakang (\).

CHECK_EXPIRATION = { AKTIF | OFF } Hanya berlaku untuk login SQL Server. Menentukan apakah kebijakan kedaluwarsa kata sandi harus diberlakukan pada login ini. Nilai defaultnya adalah NONAKTIF.

= CHECK_POLICY { ON | OFF } Hanya berlaku untuk login SQL Server. Menentukan bahwa kebijakan kata sandi Windows komputer tempat SQL Server berjalan harus diberlakukan pada login ini. Nilai defaultnya adalah AKTIF.

CREDENTIAL = credential_name Nama kredensial yang akan dipetakan ke login SQL Server. Kredensial harus sudah ada di server. Untuk informasi selengkapnya, lihat Kredensial. Kredensial tidak dapat dipetakan ke sa login.

TIDAK ADA KREDENSIAL Menghapus pemetaan masuk yang ada ke kredensial server. Untuk informasi selengkapnya, lihat Kredensial.

UNLOCK hanya berlaku untuk login SQL Server. Menentukan bahwa login yang dikunci harus dibuka kuncinya.

ADD CREDENTIAL Menambahkan kredensial penyedia Extensible Key Management (EKM) ke login. Untuk informasi selengkapnya, lihat Extensible Key Management (EKM).

DROP CREDENTIAL Menghapus kredensial penyedia Extensible Key Management (EKM) dari login. Untuk informasi selengkapnya, lihat Extensible Key Management (EKM).

Keterangan

Ketika CHECK_POLICY diatur ke AKTIF, argumen HASHED tidak dapat digunakan.

Saat CHECK_POLICY diubah ke AKTIF, perilaku berikut terjadi:

  • Riwayat kata sandi diinisialisasi dengan nilai hash kata sandi saat ini.

    Saat CHECK_POLICY diubah ke NONAKTIF, perilaku berikut terjadi:

  • CHECK_EXPIRATION juga diatur ke NONAKTIF.

  • Riwayat kata sandi dihapus.

  • Nilai lockout_time diatur ulang.

Jika MUST_CHANGE ditentukan, CHECK_EXPIRATION dan CHECK_POLICY harus diatur ke AKTIF. Jika tidak, pernyataan akan gagal.

Jika CHECK_POLICY diatur ke NONAKTIF, CHECK_EXPIRATION tidak dapat diatur ke AKTIF. Pernyataan UBAH LOGIN yang memiliki kombinasi opsi ini akan gagal.

Anda tidak dapat menggunakan ALTER_LOGIN dengan argumen DISABLE untuk menolak akses ke grup Windows. Ini memang disengaja. Misalnya, ALTER_LOGIN [domain\group] DISABLE akan mengembalikan pesan kesalahan berikut:

"Msg 15151, Level 16, State 1, Line 1 "Cannot alter the login '*Domain\Group*', because it does not exist or you do not have permission."

Di SQL Database, data masuk yang diperlukan untuk mengautentikasi koneksi dan aturan firewall tingkat server untuk sementara di-cache di setiap database. Cache ini disegarkan secara berkala. Untuk memaksa refresh cache autentikasi dan memastikan bahwa database memiliki versi terbaru tabel login, jalankan DBCC FLUSHAUTHCACHE.

Izin

Memerlukan izin UBAH LOGIN APA PUN.

Jika opsi KREDENSIAL digunakan, juga memerlukan izin UBAH INFO MASUK APA PUN.

Jika login yang sedang diubah adalah anggota peran server tetap sysadmin atau penerima izin SERVER KONTROL, juga memerlukan izin SERVER KONTROL saat membuat perubahan berikut:

  • Mereset kata sandi tanpa menyediakan kata sandi lama.
  • Mengaktifkan MUST_CHANGE, CHECK_POLICY, atau CHECK_EXPIRATION.
  • Mengubah nama login.
  • Mengaktifkan atau menonaktifkan login.
  • Memetakan login ke kredensial yang berbeda.

Prinsipal dapat mengubah kata sandi, bahasa default, dan database default untuk loginnya sendiri.

Hanya perwakilan SQL dengan sysadmin hak istimewa yang dapat menjalankan perintah ALTER LOGIN terhadap login Microsoft Entra.

Contoh

Contoh-contoh ini juga mencakup contoh untuk menggunakan produk SQL lainnya. Silakan lihat argumen mana yang didukung di atas.

J. Mengaktifkan login yang dinonaktifkan

Contoh berikut mengaktifkan login Mary5.

ALTER LOGIN Mary5 ENABLE;

B. Mengubah kata sandi login

Contoh berikut mengubah kata sandi masuk Mary5 ke kata sandi yang kuat.

ALTER LOGIN Mary5 WITH PASSWORD = '<enterStrongPasswordHere>';

C. Mengubah nama login

Contoh berikut mengubah nama masuk Mary5 menjadi John2.

ALTER LOGIN Mary5 WITH NAME = John2;

D. Memetakan login ke kredensial

Contoh berikut memetakan login John2 ke kredensial Custodian04.

ALTER LOGIN John2 WITH CREDENTIAL = Custodian04;

E. Memetakan login ke kredensial Manajemen Kunci yang Dapat Diperluas

Contoh berikut memetakan login Mary5 ke kredensial EKMProvider1EKM .

Berlaku untuk: SQL Server 2008 (10.0.x) dan yang lebih baru, dan Azure SQL Managed Instance.

ALTER LOGIN Mary5
ADD CREDENTIAL EKMProvider1;
GO

F. Membuka kunci login

Untuk membuka kunci login SQL Server, jalankan pernyataan berikut, ganti **** dengan kata sandi akun yang diinginkan.

ALTER LOGIN [Mary5] WITH PASSWORD = '****' UNLOCK ;

GO

Untuk membuka kunci login tanpa mengubah kata sandi, matikan kebijakan pemeriksaan, lalu aktifkan lagi.

ALTER LOGIN [Mary5] WITH CHECK_POLICY = OFF;
ALTER LOGIN [Mary5] WITH CHECK_POLICY = ON;
GO

G. Mengubah kata sandi login menggunakan HASHED

Contoh berikut mengubah kata sandi TestUser login ke nilai yang sudah di-hash.

Berlaku untuk: SQL Server 2008 (10.0.x) dan yang lebih baru, dan Azure SQL Managed Instance.

ALTER LOGIN TestUser WITH
PASSWORD = 0x01000CF35567C60BFB41EBDE4CF700A985A13D773D6B45B90900 HASHED ;
GO

H. Menonaktifkan login pengguna Microsoft Entra

Contoh berikut menonaktifkan login pengguna Microsoft Entra, joe@contoso.com.

ALTER LOGIN [joe@contoso.com] DISABLE

Lihat Juga

* Azure Synapse
Analytics*

 

Azure Synapse Analytics

Sintaks

-- Syntax for Azure Synapse

ALTER LOGIN login_name
  {
      <status_option>
    | WITH <set_option> [ ,.. .n ]
  }
[;]

<status_option> ::=
    ENABLE | DISABLE

<set_option> ::=
    PASSWORD ='password'
    [
      OLD_PASSWORD ='oldpassword'
    ]
    | NAME = login_name

Argumen

login_name Menentukan nama login SQL Server yang sedang diubah. Login domain harus diapit dalam tanda kurung dalam format [domain\user].

AKTIFKAN | NONAKTIFKAN Mengaktifkan atau menonaktifkan login ini. Menonaktifkan login tidak memengaruhi perilaku login yang sudah tersambung. (Gunakan KILL pernyataan untuk mengakhiri koneksi yang ada.) Login yang dinonaktifkan mempertahankan izin mereka dan masih dapat ditiru.

PASSWORD ='password' Hanya berlaku untuk login SQL Server. Menentukan kata sandi untuk login yang sedang diubah. Kata sandi peka huruf besar/kecil.

Koneksi yang terus aktif ke SQL Database memerlukan autentikasi ulang (dilakukan oleh Mesin Database) setidaknya setiap 10 jam. Mesin Database mencoba otorisasi ulang menggunakan kata sandi yang awalnya dikirimkan dan tidak ada input pengguna yang diperlukan. Untuk alasan performa, ketika kata sandi diatur ulang di SQL Database, koneksi tidak akan diautentikasi ulang, bahkan jika koneksi diatur ulang karena pengumpulan koneksi. Ini berbeda dari perilaku SQL Server lokal. Jika kata sandi telah diubah sejak koneksi awalnya diotorisasi, koneksi harus dihentikan dan koneksi baru yang dibuat menggunakan kata sandi baru. Pengguna dengan izin KILL DATABASE CONNECTION dapat secara eksplisit mengakhiri koneksi ke SQL Database dengan menggunakan perintah KILL. Untuk informasi selengkapnya, lihat KILL.

Penting

Saat login (atau pengguna database mandiri) tersambung dan diautentikasi, koneksi menyimpan informasi identitas tentang login. Untuk login Autentikasi Windows, ini mencakup informasi tentang keanggotaan di grup Windows. Identitas login tetap diautentikasi selama koneksi dipertahankan. Untuk memaksa perubahan identitas, seperti reset kata sandi atau perubahan keanggotaan grup Windows, login harus keluar dari otoritas autentikasi (Windows atau SQL Server), dan masuk lagi. Anggota peran server tetap sysadmin atau login apa pun dengan izin ALTER ANY CONNECTION dapat menggunakan perintah KILL untuk mengakhiri koneksi dan memaksa login untuk terhubung kembali. SQL Server Management Studio dapat menggunakan kembali informasi koneksi saat membuka beberapa koneksi ke Object Explorer dan Editor Kueri jendela. Tutup semua koneksi untuk memaksa koneksi ulang.

OLD_PASSWORD ='oldpassword' Hanya berlaku untuk login SQL Server. Kata sandi saat ini dari login tempat kata sandi baru akan ditetapkan. Kata sandi peka huruf besar/kecil.

NAME = login_name Nama baru login yang sedang diganti namanya. Jika ini adalah login Windows, SID prinsipal Windows yang sesuai dengan nama baru harus cocok dengan SID yang terkait dengan login di SQL Server. Nama baru login SQL Server tidak boleh berisi karakter garis miring terbelakang (\).

Keterangan

Di SQL Database, data masuk yang diperlukan untuk mengautentikasi koneksi dan aturan firewall tingkat server untuk sementara di-cache di setiap database. Cache ini disegarkan secara berkala. Untuk memaksa refresh cache autentikasi dan memastikan bahwa database memiliki versi terbaru tabel login, jalankan DBCC FLUSHAUTHCACHE.

Izin

Memerlukan izin UBAH LOGIN APA PUN.

Jika login yang sedang diubah adalah anggota peran server tetap sysadmin atau penerima izin SERVER KONTROL, juga memerlukan izin SERVER KONTROL saat membuat perubahan berikut:

  • Mereset kata sandi tanpa menyediakan kata sandi lama.
  • Mengubah nama login.
  • Mengaktifkan atau menonaktifkan login.
  • Memetakan login ke kredensial yang berbeda.

Prinsipal dapat mengubah kata sandi untuk loginnya sendiri.

Contoh

Contoh-contoh ini juga mencakup contoh untuk menggunakan produk SQL lainnya. Silakan lihat argumen mana yang didukung di atas.

J. Mengaktifkan login yang dinonaktifkan

Contoh berikut mengaktifkan login Mary5.

ALTER LOGIN Mary5 ENABLE;

B. Mengubah kata sandi login

Contoh berikut mengubah kata sandi masuk Mary5 ke kata sandi yang kuat.

ALTER LOGIN Mary5 WITH PASSWORD = '<enterStrongPasswordHere>';

C. Mengubah nama login

Contoh berikut mengubah nama masuk Mary5 menjadi John2.

ALTER LOGIN Mary5 WITH NAME = John2;

D. Memetakan login ke kredensial

Contoh berikut memetakan login John2 ke kredensial Custodian04.

ALTER LOGIN John2 WITH CREDENTIAL = Custodian04;

E. Memetakan login ke kredensial Manajemen Kunci yang Dapat Diperluas

Contoh berikut memetakan login Mary5 ke kredensial EKMProvider1EKM .

Berlaku untuk: SQL Server 2008 (10.0.x) dan yang lebih baru.

ALTER LOGIN Mary5
ADD CREDENTIAL EKMProvider1;
GO

F. Membuka kunci login

Untuk membuka kunci login SQL Server, jalankan pernyataan berikut, ganti **** dengan kata sandi akun yang diinginkan.

ALTER LOGIN [Mary5] WITH PASSWORD = '****' UNLOCK ;
GO

G. Mengubah kata sandi login menggunakan HASHED

Contoh berikut mengubah kata sandi TestUser login ke nilai yang sudah di-hash.

Berlaku untuk: SQL Server 2008 (10.0.x) dan yang lebih baru.

ALTER LOGIN TestUser WITH
PASSWORD = 0x01000CF35567C60BFB41EBDE4CF700A985A13D773D6B45B90900 HASHED ;
GO

Lihat Juga

*Analytics
Sistem Platform (PDW) *

 

Sistem Platform Analisis

Sintaks

-- Syntax for Analytics Platform System

ALTER LOGIN login_name
    {
    <status_option>
    | WITH <set_option> [ ,... ]
    }

<status_option> ::=ENABLE | DISABLE

<set_option> ::=
    PASSWORD ='password'
    [
      OLD_PASSWORD ='oldpassword'
      | <password_option> [<password_option> ]
    ]
    | NAME = login_name
    | CHECK_POLICY = { ON | OFF }
    | CHECK_EXPIRATION = { ON | OFF }

<password_option> ::=
    MUST_CHANGE | UNLOCK

Argumen

login_name Menentukan nama login SQL Server yang sedang diubah. Login domain harus diapit dalam tanda kurung dalam format [domain\user].

AKTIFKAN | NONAKTIFKAN Mengaktifkan atau menonaktifkan login ini. Menonaktifkan login tidak memengaruhi perilaku login yang sudah tersambung. (Gunakan KILL pernyataan untuk mengakhiri koneksi yang ada.) Login yang dinonaktifkan mempertahankan izin mereka dan masih dapat ditiru.

PASSWORD ='password' Hanya berlaku untuk login SQL Server. Menentukan kata sandi untuk login yang sedang diubah. Kata sandi peka huruf besar/kecil.

Penting

Saat login (atau pengguna database mandiri) tersambung dan diautentikasi, koneksi menyimpan informasi identitas tentang login. Untuk login Autentikasi Windows, ini mencakup informasi tentang keanggotaan di grup Windows. Identitas login tetap diautentikasi selama koneksi dipertahankan. Untuk memaksa perubahan identitas, seperti reset kata sandi atau perubahan keanggotaan grup Windows, login harus keluar dari otoritas autentikasi (Windows atau SQL Server), dan masuk lagi. Anggota peran server tetap sysadmin atau login apa pun dengan izin ALTER ANY CONNECTION dapat menggunakan perintah KILL untuk mengakhiri koneksi dan memaksa login untuk terhubung kembali. SQL Server Management Studio dapat menggunakan kembali informasi koneksi saat membuka beberapa koneksi ke Object Explorer dan Editor Kueri jendela. Tutup semua koneksi untuk memaksa koneksi ulang.

OLD_PASSWORD ='oldpassword' Hanya berlaku untuk login SQL Server. Kata sandi saat ini dari login tempat kata sandi baru akan ditetapkan. Kata sandi peka huruf besar/kecil.

MUST_CHANGE Hanya berlaku untuk login SQL Server. Jika opsi ini disertakan, SQL Server akan meminta kata sandi yang diperbarui saat pertama kali login yang diubah digunakan.

NAME = login_name Nama baru login yang sedang diganti namanya. Jika login adalah login Windows, SID prinsipal Windows yang sesuai dengan nama baru harus cocok dengan SID yang terkait dengan login di SQL Server. Nama baru login SQL Server tidak boleh berisi karakter garis miring terbelakang (\).

CHECK_EXPIRATION = { AKTIF | OFF } Hanya berlaku untuk login SQL Server. Menentukan apakah kebijakan kedaluwarsa kata sandi harus diberlakukan pada login ini. Nilai defaultnya adalah NONAKTIF.

= CHECK_POLICY { ON | OFF } Hanya berlaku untuk login SQL Server. Menentukan bahwa kebijakan kata sandi Windows komputer tempat SQL Server berjalan harus diberlakukan pada login ini. Nilai defaultnya adalah AKTIF.

UNLOCK hanya berlaku untuk login SQL Server. Menentukan bahwa login yang dikunci harus dibuka kuncinya.

Keterangan

Ketika CHECK_POLICY diatur ke AKTIF, argumen HASHED tidak dapat digunakan.

Saat CHECK_POLICY diubah ke AKTIF, perilaku berikut terjadi:

  • Riwayat kata sandi diinisialisasi dengan nilai hash kata sandi saat ini.

    Saat CHECK_POLICY diubah ke NONAKTIF, perilaku berikut terjadi:

  • CHECK_EXPIRATION juga diatur ke NONAKTIF.

  • Riwayat kata sandi dihapus.

  • Nilai lockout_time diatur ulang.

Jika MUST_CHANGE ditentukan, CHECK_EXPIRATION dan CHECK_POLICY harus diatur ke AKTIF. Jika tidak, pernyataan akan gagal.

Jika CHECK_POLICY diatur ke NONAKTIF, CHECK_EXPIRATION tidak dapat diatur ke AKTIF. Pernyataan UBAH LOGIN yang memiliki kombinasi opsi ini akan gagal.

Anda tidak dapat menggunakan ALTER_LOGIN dengan argumen DISABLE untuk menolak akses ke grup Windows. Ini memang disengaja. Misalnya, ALTER_LOGIN [domain\group] DISABLE akan mengembalikan pesan kesalahan berikut:

"Msg 15151, Level 16, State 1, Line 1 "Cannot alter the login '*Domain\Group*', because it does not exist or you do not have permission."

Di SQL Database, data masuk yang diperlukan untuk mengautentikasi koneksi dan aturan firewall tingkat server untuk sementara di-cache di setiap database. Cache ini disegarkan secara berkala. Untuk memaksa refresh cache autentikasi dan memastikan bahwa database memiliki versi terbaru tabel login, jalankan DBCC FLUSHAUTHCACHE.

Izin

Memerlukan izin UBAH LOGIN APA PUN.

Jika opsi KREDENSIAL digunakan, juga memerlukan izin UBAH INFO MASUK APA PUN.

Jika login yang sedang diubah adalah anggota peran server tetap sysadmin atau penerima izin SERVER KONTROL, juga memerlukan izin SERVER KONTROL saat membuat perubahan berikut:

  • Mereset kata sandi tanpa menyediakan kata sandi lama.
  • Mengaktifkan MUST_CHANGE, CHECK_POLICY, atau CHECK_EXPIRATION.
  • Mengubah nama login.
  • Mengaktifkan atau menonaktifkan login.
  • Memetakan login ke kredensial yang berbeda.

Prinsipal dapat mengubah kata sandi, bahasa default, dan database default untuk loginnya sendiri.

Contoh

Contoh-contoh ini juga mencakup contoh untuk menggunakan produk SQL lainnya. Silakan lihat argumen mana yang didukung di atas.

J. Mengaktifkan login yang dinonaktifkan

Contoh berikut mengaktifkan login Mary5.

ALTER LOGIN Mary5 ENABLE;

B. Mengubah kata sandi login

Contoh berikut mengubah kata sandi masuk Mary5 ke kata sandi yang kuat.

ALTER LOGIN Mary5 WITH PASSWORD = '<enterStrongPasswordHere>';

C. Mengubah nama login

Contoh berikut mengubah nama masuk Mary5 menjadi John2.

ALTER LOGIN Mary5 WITH NAME = John2;

D. Memetakan login ke kredensial

Contoh berikut memetakan login John2 ke kredensial Custodian04.

ALTER LOGIN John2 WITH CREDENTIAL = Custodian04;

E. Memetakan login ke kredensial Manajemen Kunci yang Dapat Diperluas

Contoh berikut memetakan login Mary5 ke kredensial EKMProvider1EKM .

Berlaku untuk: SQL Server 2008 (10.0.x) dan yang lebih baru.

ALTER LOGIN Mary5
ADD CREDENTIAL EKMProvider1;
GO

F. Membuka kunci login

Untuk membuka kunci login SQL Server, jalankan pernyataan berikut, ganti **** dengan kata sandi akun yang diinginkan.

ALTER LOGIN [Mary5] WITH PASSWORD = '****' UNLOCK ;

GO

Untuk membuka kunci login tanpa mengubah kata sandi, matikan kebijakan pemeriksaan, lalu aktifkan lagi.

ALTER LOGIN [Mary5] WITH CHECK_POLICY = OFF;
ALTER LOGIN [Mary5] WITH CHECK_POLICY = ON;
GO

G. Mengubah kata sandi login menggunakan HASHED

Contoh berikut mengubah kata sandi TestUser login ke nilai yang sudah di-hash.

Berlaku untuk: SQL Server 2008 (10.0.x) dan yang lebih baru.

ALTER LOGIN TestUser WITH
PASSWORD = 0x01000CF35567C60BFB41EBDE4CF700A985A13D773D6B45B90900 HASHED ;
GO

Lihat Juga