Sunucularımdan birinde belirli bir sorgu ile ilgili sorunlar yaşıyorum. Test ettiğim diğer tüm yerlerde tamamen iyi çalışıyor, ancak kullanmak istediğim sunucuda çalışmıyor.
Aşağıdaki SQL ile ilgili:
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
Aldığım hata kodu bu:
SELECT komutu 'marco'@'localhost' kullanıcısına 'projecten'
tablosu için reddedildi
Masalar: 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 ;
İşin garip tarafı, hem 'projecten' tablosundaki hem de 'facturen' tablosundaki diğer tüm sorgular tamamen sorunsuz çalışıyor, ayrıca bu sorgu diğer iki sunucumda da sorunsuz çalışıyor.
MySQL'e bağlanan MySQL kullanıcısına SELECT izinleri vermeniz gerekir
buradakiyle aynı soru https://stackoverflow.com/questions/4767055/error-select-command-denied-to-user-useridip-address-for-table-table
linkteki cevaplara bakınız ;)
Karşılaştığım sorun şuydu... izinleri vermek için kullandığım uygulama Schema.TableName'i yanlış tabloda tek bir DB deyimine dönüştürdü, bu nedenle izin gerçekten yanlıştı, ancak GRANT SELECT ile GRANT TABLE SELECT'e çok dikkat etmediyseniz SHOW GRANTS FOR UserName yaptığımızda doğru görünüyordu. Tablo üzerinde Grant Select'i Schema
.Table
ifadesinin uygun şekilde kaçışıyla manuel olarak düzeltmek sorunumu çözdü.
Alakasız olabilir, ancak bir müşteri bunu yanlış yaparsa, diğerinin de yapabileceğini hayal edebiliyorum.
Umarım yardımcı olmuştur.