GNU/Linux >> Belajar Linux >  >> Linux

Kesalahan menggunakan GRANT dengan IDENTIFIED dengan kata sandi di MySQL

Pertanyaan :Saya telah menggunakan IDENTIFIED BY 'password' bersama dengan pernyataan GRANT selama bertahun-tahun di banyak versi MySQL. Namun, hal yang sama gagal di MySQL versi 8.0.26 pada rilis CentOS Stream baru saya 8. Di bawah ini adalah pesan kesalahan lengkap. Apa yang bisa menjadi masalah? – Tushar.

mysql> GRANT ALL PRIVILEGES ON qdb.* TO 'quser'@'localhost' IDENTIFIED BY 'qcuser123';
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near IDENTIFIED BY 'quser123' at line 1

Kesalahan saat menggunakan GRANT dengan IDENTIFIED by password

Tushar, penggunaan kata sandi IDENTIFIED BY dengan pernyataan GRANT telah ditinggalkan sejak MySQL versi 5.7.6. Artinya Anda harus menggunakan IDENTIFIED by password dengan CREATE USER atau ALTER USER dan menerapkan GRANT PRIVILEGES seperti gambar di bawah ini:

BUAT PENGGUNA dan tetapkan sandi.

mysql> CREATE USER 'quser'@'localhost' IDENTIFIED BY 'qc123';
Query OK, 0 rows affected (0.12 sec)

Tambahkan hak istimewa menggunakan GRANT:

mysql> GRANT ALL PRIVILEGES ON qdb.* TO 'quser'@'localhost';
Query OK, 0 rows affected (0.03 sec)

Mengapa ada perubahan di MySQL terbaru?

Perubahan tersebut masuk akal karena alasan di bawah ini:

  • Menggunakan IDENTIFIED BY kata sandi dengan hak GRANT akan menetapkan kata sandi apa pun yang ditentukan sebagai kata sandi baru untuk akun tersebut. Asumsikan jika ada akun yang sudah ada dengan kata sandi yang berbeda, menjalankan hak GRANT bersama dengan kata sandi IDENTIFIED BY akan menimpa kata sandi yang ada. Jadi menghapus IDENTIFIED dari GRANT berarti, akun tetap dengan kata sandi yang disetel selama pembuatan.
  • Pada MySQL versi 5.7.2, jika akun sudah ada, DIIDENTIFIKASI dengan 'sandi' dilarang dan harus digunakan hanya selama pembuatan akun yaitu, dengan CREATE USER atau ALTER USER .
  • GRANT dapat membuat akun pengguna jika tidak ada.
    • Jika NO_AUTO_CREATE_USER enabled
      • Jika akun yang ditentukan dalam pernyataan GRANT tidak ada, maka GRANT akan gagal membuat akun kecuali kata sandi yang tidak kosong ditentukan melalui IDENTIFIED BY atau melalui IDENTIFIED WITH.
    • Jika NO_AUTO_CREATE_USER disabled
      • Jika akun yang ditentukan dalam pernyataan GRANT tidak ada, maka GRANT membuat akun. Ini bisa menjadi tidak aman jika tidak ada kata sandi yang ditentukan melalui IDENTIFIED BY.

Akhirnya, HIBAH dengan kata sandi IDENTIFIED BY telah ditinggalkan dan akun pengguna harus dibuat menggunakan CREATE USER atau ALTER USER.

melalui StackOverflow.


Linux
  1. SSHPass:Cara SSH ke server menggunakan skrip tanpa kata sandi (non-interaktif)

  2. Mengakses Mysql Menggunakan Terminal Di Ubuntu 13.04?

  3. Setel ulang kata sandi root MySQL

  1. Cara Instal MySQL di Linux

  2. Kesalahan saat menggunakan pembantu kredensial Git dengan gnome-keyring sebagai Sudo

  3. Kesalahan Kata Sandi Windows 10 dengan Samba Share

  1. Menggunakan Notify-send Dengan Cron?

  2. Menggunakan Bungkus Kata Dengan Mc?

  3. Terhubung ke MySQL melalui baris perintah tanpa menggunakan kata sandi root?