Kesalahan MySQL: #1142 - Perintah SELECT ditolak untuk pengguna

Saya mengalami masalah dengan kueri tertentu di salah satu server saya. Di semua tempat lain yang telah saya uji, ia berfungsi dengan baik tetapi di server yang ingin saya gunakan, ia tidak berfungsi.

Ini tentang SQL berikut:

SELECT facturen.id            AS fid, 
       projecten.id           AS pid, 
       titel, 
       facturen.totaal_bedrag AS totaal, 
       betaald, 
       datum 
FROM   facturen, 
       projecten 
WHERE  facturen.project_id = projecten.id 
       AND projecten.eigenaar = '1' 
ORDER  BY datum DESC 

Ini adalah kode kesalahan yang saya dapatkan darinya:

Perintah SELECT ditolak untuk pengguna 'marco'@'localhost' untuk tabel 'projecten'

Tabel: facturen:

CREATE TABLE IF NOT EXISTS `facturen` (
  `id` int(11) NOT NULL auto_increment,
  `project_id` int(11) NOT NULL,
  `datum` int(11) NOT NULL,
  `lever_datum` int(11) NOT NULL,
  `totaal_bedrag` decimal(9,2) NOT NULL,
  `btw` decimal(9,2) NOT NULL,
  `bedrijf` varchar(40) NOT NULL,
  `contactpersoon` varchar(60) NOT NULL,
  `adres` varchar(60) NOT NULL,
  `postcode` varchar(7) NOT NULL,
  `plaats` varchar(30) NOT NULL,
  `betaald` int(11) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=201200006 ;

projecten:

CREATE TABLE IF NOT EXISTS `projecten` (
  `id` int(11) NOT NULL auto_increment,
  `titel` varchar(80) NOT NULL,
  `eigenaar` int(11) NOT NULL,
  `creatie_datum` int(11) NOT NULL,
  `eind_datum` int(11) NOT NULL,
  `totaal_bedrag` decimal(9,2) NOT NULL,
  `btw` decimal(9,2) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=201200004 ;

Bagian yang aneh adalah bahwa setiap kueri lain pada tabel ' projecten ' dan ' facturen ' tabel berfungsi sepenuhnya dengan baik, juga kueri ini berfungsi dengan baik di dua server saya yang lain.

Larutan

Anda perlu memberikan izin SELECT ke pengguna MySQL yang sedang terhubung ke MySQL

pertanyaan yang sama seperti di sini https://stackoverflow.com/questions/4767055/error-select-command-denied-to-user-useridip-address-for-table-table

lihat jawaban dari tautan tersebut;)

Komentar (3)

Ini adalah masalah hak istimewa pada pengguna database Anda. pertama-tama periksa dan berikan izin kepada pengguna 'marco' di localhost

Komentar (0)

Jadi masalah yang saya hadapi adalah ini ... aplikasi yang saya gunakan untuk memberikan izin mengubah Schema.TableName menjadi pernyataan DB tunggal di tabel yang salah, jadi hibah itu memang salah, tetapi terlihat benar ketika kami melakukan SHOW GRANTS FOR UserName jika Anda tidak memperhatikan GRANT SELECT vs GRANT TABLE SELECT dengan sangat cermat. Mengoreksi secara manual Grant Select pada Tabel dengan escaping yang tepat dari Schema.Table memecahkan masalah saya.

Mungkin tidak berhubungan, tapi saya bisa membayangkan jika satu klien melakukan kesalahan ini, yang lain mungkin juga.

Semoga bermanfaat.

Komentar (0)