Rumah  >  Artikel  >  pangkalan data  >  Di manakah kata laluan untuk mysql diletakkan?

Di manakah kata laluan untuk mysql diletakkan?

青灯夜游
青灯夜游asal
2022-06-27 16:39:098635semak imbas

Kata laluan mysql diletakkan dalam medan authentication_string pada jadual kebenaran pengguna. Jadual pengguna ialah jadual kebenaran yang paling penting dalam MySQL Ia digunakan untuk merekodkan maklumat akaun yang dibenarkan untuk menyambung ke pelayan Apabila mengubah kata laluan pengguna, ia sebenarnya mengubah nilai medan authentication_string dalam jadual pengguna sintaks ialah "TETAPKAN KATA LALUAN UNTUK 'nama pengguna'@' nama hos'=KATAlaluan ('kata laluan baharu')".

Di manakah kata laluan untuk mysql diletakkan?

Persekitaran pengendalian tutorial ini: sistem windows7, versi mysql8, komputer Dell G3.

Kata laluan mysql diletakkan dalam medan authentication_string pada jadual kebenaran pengguna.

Lajur pengguna jadual kebenaran pengguna MySQL

MySQL secara automatik akan mencipta pangkalan data bernama mysql semasa pemasangan, pangkalan data mysql yang disimpan dalam adalah jadual kebenaran pengguna. Selepas pengguna log masuk, MySQL akan memberikan kebenaran yang sepadan kepada setiap pengguna berdasarkan kandungan jadual kebenaran ini.

Jadual pengguna ialah jadual kebenaran paling penting dalam MySQL, digunakan untuk merekod maklumat akaun yang dibenarkan untuk menyambung ke pelayan. Perlu diingatkan bahawa semua kebenaran yang didayakan dalam jadual pengguna adalah global dan digunakan untuk semua pangkalan data.

Di manakah kata laluan untuk mysql diletakkan?

Medan dalam jadual pengguna boleh dibahagikan secara kasar kepada 4 kategori iaitu lajur pengguna, lajur kebenaran, lajur keselamatan dan lajur kawalan sumber.

Lajur pengguna menyimpan maklumat yang pengguna perlu masukkan semasa menyambung ke pangkalan data MySQL.

Perlu diambil perhatian bahawa versi MySQL 5.7 tidak lagi menggunakan Kata Laluan sebagai medan kata laluan, tetapi menukarnya kepada authentication_string.

Senarai pengguna MySQL ditunjukkan dalam Jadual 1.

表 1:user 表的用户列
字段名 字段类型 是否为空 默认值 说明
Host char(60) NO 主机名
User char(32) NO 用户名
authentication_string text YES 密码

Apabila pengguna log masuk, sistem pangkalan data MySQL hanya akan membenarkan dia log masuk jika ketiga-tiga medan ini sepadan pada masa yang sama. Apabila mencipta pengguna baharu, nilai bagi ketiga-tiga medan ini juga ditetapkan. Apabila mengubah suai kata laluan pengguna, ia sebenarnya mengubah nilai medan authentication_string pada jadual pengguna. Oleh itu, 3 medan ini menentukan sama ada pengguna boleh log masuk.

Gunakan pernyataan SET untuk menukar kata laluan pengguna biasa

Dalam MySQL, hanya pengguna root boleh menukar kata laluan dengan mengemas kini pangkalan data MySQL. Selepas log masuk ke pelayan MySQL sebagai pengguna akar, anda boleh menggunakan pernyataan SET untuk mengubah suai kata laluan pengguna biasa. Format sintaks adalah seperti berikut:

SET PASSWORD FOR 'username'@'hostname' = PASSWORD ('newpwd');

Antaranya, parameter nama pengguna ialah nama pengguna pengguna biasa, parameter nama hos ialah nama hos pengguna biasa, dan newpwd ialah kata laluan baharu yang akan ditukar. .

Nota: Kata laluan baharu mesti disulitkan menggunakan fungsi PASSWORD() Jika ia tidak disulitkan menggunakan PASSWORD(), ia akan berjaya dilaksanakan, tetapi pengguna tidak akan dapat log masuk.

Jika pengguna biasa menukar kata laluan mereka, mereka boleh meninggalkan klausa FOR untuk menukar kata laluan mereka. Format sintaks adalah seperti berikut:

SET PASSWORD = PASSWORD('newpwd');

Contoh 1

Mula-mula buat pengguna penguji tanpa kata laluan Penyataan SQL dan hasil yang dijalankan adalah seperti berikut:

mysql> CREATE USER 'testuser'@'localhost';
Query OK, 0 rows affected (0.14 sec)

Selepas pengguna root log masuk ke pelayan MySQL, gunakan pernyataan SET untuk menukar kata laluan pengguna penguji kepada "newpwd". 🎜>

Seperti yang dapat dilihat daripada keputusan yang dijalankan, pernyataan SET dilaksanakan Berjaya, kata laluan pengguna penguji berjaya ditetapkan kepada "newpwd".
mysql> SET PASSWORD FOR 'testuser'@'localhost' = PASSWORD("newpwd");
Query OK, 0 rows affected, 1 warning (0.01 sec)

Yang berikut mengesahkan sama ada kata laluan pengguna penguji telah berjaya diubah suai. Keluar daripada pelayan MySQL, log masuk sebagai pengguna penguji, dan masukkan kata laluan "newpwd". pengguna berjaya log masuk dan menukar kata laluan dengan jayanya.

Contoh 2
C:\Users\leovo>mysql -utestuser -p
Enter password: ******
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 15
Server version: 5.7.29-log MySQL Community Server (GPL)
 
Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
 
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
 
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

Gunakan pengguna penguji untuk log masuk ke pelayan MySQL, dan kemudian gunakan pernyataan SET untuk menukar kata laluan kepada "newpwd1". dan keputusan berjalan adalah seperti berikut:

Ia boleh dilihat daripada hasil yang dijalankan bahawa kata laluan telah berjaya ditukar.

[Cadangan berkaitan:

tutorial video mysql
mysql> SET PASSWORD = PASSWORD('newpwd1');
Query OK, 0 rows affected, 1 warning (0.00 sec)
]

Atas ialah kandungan terperinci Di manakah kata laluan untuk mysql diletakkan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:Apakah odbc dalam mysqlArtikel seterusnya:Apakah odbc dalam mysql