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

Tingkat akses minimum untuk menjalankan prosedur tersimpan MySql

Ini tampaknya merupakan bug di Connector/NET, mirip dengan bug 75301 tapi sedikit berbeda. Saat mencoba menentukan metadata parameter untuk prosedur, pertama-tama ia membuat MySqlSchemaCollection bernama Procedures dengan semua metadata tentang prosedur. (Ini adalah SELECT * FROM information_schema.routines WHERE 1=1 AND routine_schema LIKE 'Spike' AND routine_name LIKE 'TestAccess' kueri yang Anda lihat di log Anda.)

Spike akun pengguna tidak memiliki izin untuk membaca ROUTINE_DEFINITION kolom, jadi NULL . Connector/NET mengharapkan bidang ini menjadi non-NULL dan melempar SqlNullValueException pengecualian mencoba membacanya.

Ada dua solusi:

1) Yang pertama, yang Anda temukan, adalah menyetel CheckParameters=False di string koneksi Anda. Ini akan menonaktifkan pengambilan metadata prosedur tersimpan (menghindari crash), tetapi dapat menyebabkan masalah yang lebih sulit untuk di-debug memanggil prosedur tersimpan lainnya jika Anda tidak mendapatkan urutan dan jenis parameter dengan tepat. (Connector/NET tidak dapat lagi memetakannya untuk Anda menggunakan metadata.)

2) Beralih ke pustaka MySQL ADO.NET lain yang tidak memiliki bug ini:MySqlConnector di NuGet . Ini sangat kompatibel dengan Connector/NET, berkinerja lebih cepat, dan memperbaiki banyak masalah umum .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara menulis kueri jenis n terbesar per grup, tetapi dengan ketentuan tambahan?

  2. Kegagalan tautan komunikasi - paket terakhir yang berhasil diterima dari server adalah

  3. Membuat file kml dari database mysql dengan php

  4. MySQL 8.0 Metode otentikasi yang diminta tidak diketahui oleh klien (caching_sha2_password)

  5. Menyimpan gambar dalam database secara langsung atau sebagai data base64?