Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

1045, Akses ditolak untuk 'username'@'NOT-local' pengguna (menggunakan kata sandi:YA)

tampilkan login ke server (perhatikan bahwa % berarti anyhost atau wildcard)

select user,host from mysql.user;

+-----------+------------+
| user      | host       |
+-----------+------------+
| ajax_guy  | %          |
| joe7      | %          |
| joe8      | %          |
+-----------+------------+

menunjukkan hibah apa yang ada untuk pengguna tertentu.

show grants for 'ajax_guy'@'%';

+----------------------------------------------------------------------
| Grants for [email protected]%                                              
+----------------------------------------------------------------------
| GRANT USAGE ON *.* TO 'ajax_guy'@'%' IDENTIFIED BY PASSWORD ...
| GRANT ALL PRIVILEGES ON `ajax_stuff`.* TO 'ajax_guy'@'%'           
| GRANT ALL PRIVILEGES ON `ajax_stuff`.`ajax_stuff` TO 'ajax_guy'@'%'
+----------------------------------------------------------------------

Cara memberikan akses ke db tertentu ke login tertentu. Di bawah ini kami memberikan semua hak kepada pengguna untuk so_gibberish basis data .

grant ALL on so_gibberish.* to 'ajax_guy'@'%';

Lihat hibah yang berlaku sekarang untuk login itu

+----------------------------------------------------------------------
| Grants for [email protected]%                                              
+----------------------------------------------------------------------
| GRANT USAGE ON *.* TO 'ajax_guy'@'%' IDENTIFIED BY PASSWORD ...
| GRANT ALL PRIVILEGES ON `ajax_stuff`.* TO 'ajax_guy'@'%'           
| GRANT ALL PRIVILEGES ON `so_gibberish`.* TO 'ajax_guy'@'%'         
| GRANT ALL PRIVILEGES ON `ajax_stuff`.`ajax_stuff` TO 'ajax_guy'@'%'
+----------------------------------------------------------------------

Buat login baru drew_saturday dengan kata sandi friday987 .Dia memiliki semua hak istimewa di database so_gibberish dan dapat masuk dari host mana pun (% )

grant ALL on so_gibberish.* to 'drew_saturday'@'%' IDENTIFIED BY 'friday987';

select user,host,password from mysql.user where user='drew_saturday';

+---------------+------+-------------------------------------------+
| user          | host | password                                  |
+---------------+------+-------------------------------------------+
| drew_saturday | %    | *4600ED0F377308959665877BD327D4788DC2071F |
+---------------+------+-------------------------------------------+

Omong-omong, kata sandi di atas adalah kata sandi yang di-hash.

Catatan:untuk MySQL 5.7 perintah di atas adalah:

select user,host,authentication_string from mysql.user where user='drew_saturday';

Halaman manual MySQL di Hibah . Jangan berikan hak berlebihan kepada pengguna yang menggunakan grant ALL on *. ... . Itu untuk semua basis data dalam sistem. Cukup baca manualnya dan lebih sedikit lebih banyak.

Terkadang, admin ingin memberikan akses hanya ke beberapa tabel dalam database (tidak semua tabel di dalamnya) untuk login. Manual ini harus dibaca tentang ini.

Dan satu hal terakhir. 'drew_saturday'@'%' adalah login yang berbeda dari 'drew_saturday'@'NOT-local' (meminjam dari judul Anda). Mereka adalah login yang berbeda dengan hak yang berbeda. Itulah inti dari hal pertama yang saya tulis di sana.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tidak dapat memuat kelas driver JDBC [com.mysql.jdbc.Driver]

  2. Pilih Database MySQL di Linux melalui Command Line

  3. Bagaimana cara kerja setiap baris di pemicu di mysql?

  4. Cara:Membersihkan mesin penyimpanan InnoDB mysql?

  5. Periksa apakah ini duplikat