Login mysql dengan kata sandi terenkripsi

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

    SET PASSWORD FOR 'jeffrey'@'localhost' = 'auth_string';
    
  • 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)

    SET PASSWORD FOR 'jeffrey'@'localhost' = PASSWORD('password');
    

    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 asli0

SELECT CURRENT_USER();
_6SHA-256 hashing2
SET 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”

Bagaimana cara memasukkan kata sandi terenkripsi di MySQL?

Server MySQL menggunakan fungsi PASSWORD untuk mengenkripsi kata sandi MySQL untuk disimpan di kolom Kata Sandi pada tabel pemberian pengguna. Nilai yang dikembalikan oleh fungsi PASSWORD adalah string hash, atau NULL jika argumennya adalah NULL. Fungsi PASSWORD menerima satu parameter yaitu string yang akan dienkripsi .

Enkripsi kata sandi apa yang digunakan MySQL?

Hash kata sandi yang disimpan oleh Server MySQL dihasilkan dengan mencirikan kata sandi teks biasa dua kali menggunakan SHA1 . Saat klien mengirimkan kata sandi ke server, ia menggunakan tiga informasi. Hash SHA1 dari kata sandi teks biasa. Hash SHA1 dari hash SHA1 dari kata sandi teks biasa.

Bagaimana cara menggunakan enkripsi di MySQL?

Untuk mengaktifkan enkripsi untuk tablespace sistem mysql, tentukan nama tablespace dan opsi ENCRYPTION dalam pernyataan ALTER TABLESPACE . mysql> ALTER TABLESPACE ENKRIPSI mysql = 'Y'; .

Bisakah saya masuk ke MySQL tanpa kata sandi?

Instalasi MySQL hanya membuat akun pengguna super 'root'@'localhost' yang memiliki semua hak istimewa dan dapat melakukan apa saja. Jika akun root memiliki kata sandi kosong, instalasi MySQL Anda tidak terlindungi. Siapa pun dapat terhubung ke server MySQL sebagai root tanpa kata sandi dan diberikan semua hak istimewa .