Pernyataan SET PASSWORD_ memberikan kata sandi ke akun pengguna MySQL. 'auth_string_' mewakili kata sandi teks-jelas (tidak terenkripsi).
Dalam keadaan tertentu, SET PASSWORD dapat direkam dalam log server atau di sisi klien dalam file riwayat seperti SET PASSWORD FOR 'jeffrey'@'localhost' = 'auth_string'; 1, yang berarti bahwa kata sandi teks-jelas dapat dibaca oleh siapa pun yang memiliki akses baca ke informasi tersebut. Untuk informasi tentang kondisi di mana hal ini terjadi untuk log server dan cara mengontrolnya, lihat Bagian 6. 1. 2. 3, “Kata Sandi dan Pencatatan”. Untuk informasi serupa tentang logging sisi klien, lihat Bagian 4. 5. 1. 3, "Logging Klien mysql"
SET PASSWORD dapat digunakan dengan atau tanpa klausa SET PASSWORD FOR 'jeffrey'@'localhost' = 'auth_string'; 3 yang secara eksplisit menamai akun pengguna
Dengan klausa SET PASSWORD FOR 'jeffrey'@'localhost' = 'auth_string'; 4, pernyataan menetapkan kata sandi untuk akun bernama, yang harus ada
Tanpa klausa SET PASSWORD FOR 'jeffrey'@'localhost' = 'auth_string'; 4, pernyataan menetapkan kata sandi untuk pengguna saat ini
SET PASSWORD = 'auth_string';Setiap klien yang terhubung ke server menggunakan akun non-anonim dapat mengubah kata sandi untuk akun tersebut. (Secara khusus, Anda dapat mengubah kata sandi Anda sendiri. ) Untuk melihat akun mana yang diautentikasi oleh server Anda, aktifkan fungsi tersebut
SELECT CURRENT_USER(); _
Jika klausa SET PASSWORD FOR 'jeffrey'@'localhost' = 'auth_string'; _4 diberikan, nama akun menggunakan format yang dijelaskan di Bagian 6. 2. 4, “Menentukan Nama Akun”. Misalnya
SET PASSWORD FOR 'bob'@'%.example.org' = 'auth_string'; _Bagian nama host dari nama akun, jika dihilangkan, defaultnya adalah SET PASSWORD FOR 'jeffrey'@'localhost' = 'auth_string'; 8
Mengatur kata sandi untuk akun bernama (dengan klausa SET PASSWORD FOR 'jeffrey'@'localhost' = 'auth_string'; 3) memerlukan hak istimewa untuk database sistem SET PASSWORD = 'auth_string'; 1. Menetapkan kata sandi untuk Anda sendiri (untuk akun non-anonim tanpa klausa SET PASSWORD FOR 'jeffrey'@'localhost' = 'auth_string'; 3) tidak memerlukan hak istimewa khusus. Saat variabel sistem diaktifkan, SET PASSWORD memerlukan hak istimewa selain hak istimewa lain yang diperlukan
Kata sandi dapat ditentukan dengan cara ini
Gunakan string tanpa
SET PASSWORD FOR 'jeffrey'@'localhost' = 'password';SET PASSWORD_ menafsirkan string sebagai string teks-jelas, meneruskannya ke plugin autentikasi yang terkait dengan akun, dan menyimpan hasil yang dikembalikan oleh plugin di baris akun di tabel sistem SET PASSWORD = 'auth_string'; 8. (Plugin diberi kesempatan untuk meng-hash nilai ke dalam format enkripsi yang diharapkan. Plugin dapat menggunakan nilai seperti yang ditentukan, dalam hal ini tidak terjadi hashing. )
Gunakan fungsi (usang di MySQL 5. 7)
Argumennya adalah kata sandi cleartext (tidak terenkripsi). hash kata sandi dan mengembalikan string kata sandi terenkripsi untuk penyimpanan di baris akun di tabel sistem SET PASSWORD = 'auth_string'; 8
Fungsi hash kata sandi menggunakan metode hash yang ditentukan oleh nilai dari nilai variabel sistem. Pastikan itu memiliki nilai yang sesuai dengan metode hashing yang diharapkan oleh plugin autentikasi yang terkait dengan akun. Misalnya, jika akun menggunakan plugin SELECT CURRENT_USER(); 6, nilainya harus 0
SET old_passwords = 0; SET PASSWORD FOR 'jeffrey'@'localhost' = PASSWORD('password');Jika nilainya berbeda dari yang diperlukan oleh plugin autentikasi, nilai kata sandi hash yang dikembalikan oleh tidak dapat digunakan oleh plugin dan autentikasi yang benar dari koneksi klien tidak dapat terjadi
Tabel berikut menunjukkan, untuk setiap metode hashing kata sandi, nilai yang diizinkan dari SELECT CURRENT_USER(); 4 dan plugin autentikasi mana yang menggunakan metode hashing
Password Hashing Methodold_passwords ValueAssociated Authentication PluginMySQL 4. 1 hashing asli0SELECT CURRENT_USER(); _6SHA-256 hashing2SET PASSWORD FOR 'bob'@'%.example.org' = 'auth_string'; 2
Untuk informasi tambahan tentang menyetel sandi dan plugin autentikasi, lihat Bagian 6. 2. 10, “Menetapkan Kata Sandi Akun”, dan Pasal 6. 2. 13, “Otentikasi yang Dapat Dipasang”