MySQLのエラーです。#1142 - SELECTコマンドがユーザーに拒否されました。
あるサーバーで、あるクエリに問題があります。私がテストした他の場所では全く問題なく動作しているのですが、私が使用したいサーバーでは動作しません。
次のようなSQLです。
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
これは私が得たエラーコードです。
SELECT command denied to user 'marco'@'localhost' for table 'projecten'
テーブルには 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 ;
不思議なのは、 'projecten'テーブルと 'facturen'テーブルの両方に対する他のすべてのクエリはまったく問題なく動作し、このクエリは私の他の2つのサーバでも問題なく動作していることです。
26
3
MySQLに接続しているMySQLユーザーにSELECT権限を付与する必要があります。
ここと同じ質問です https://stackoverflow.com/questions/4767055/error-select-command-denied-to-user-useridip-address-for-table-table 。
リンク先の回答をご覧ください ;)
これは、データベースのユーザーの権限の問題です。最初にチェックして、ユーザー に権限を与えます。
私が遭遇した問題は以下の通りです...パーミッションを付与するために使用したアプリケーションは、Schema.TableNameを間違ったテーブルの単一のDBステートメントに変換していました。 手動でテーブルへのグラントセレクトを修正し、
Schema
.Table
を適切にエスケープすることで問題は解決しました。関係ないかもしれませんが、あるクライアントがこれを間違っていると、他のクライアントもそうするかもしれないと想像できます。
ご参考になれば幸いです。