0

データベースでのレポートに使用されるユーザーを確立しました。SELECT必要なデータベースに対する権限のみを付与しました。

たとえば、phpMyAdmin から MySQL にログインすることができ、ユーザーがすべきことを行います。

ただし、ODBC から読み取ろうとすると、次のエラーが発生します。

[MySQL][ODBC 3.51 Driver]Access denied for user user@server_ip (using password: YES)

何か特別なことをする必要がありますか? でのアクセスにrootはこの問題はありませんが、明らかに、セキュリティ上の理由から、そのユーザーにすべてのアクセス許可を付与したくありません。

4

1 に答える 1

2

まず、ユーザーがローカルに接続するときに目的のアクセス権を持っていることを確認する必要があります。これは、MySQL Query Browser または MySQL Command Line クライアントを使用してテストできます。

ここで、ローカルでテストしたときに問題がなく、root ユーザーリモート マシンからテーブルにアクセスできる場合は、リモート ホストからのテーブルへのアクセスを妨げているユーザーの権限に何か問題があるはずです。ユーザーに必要な権限が正しく付与されているかどうかを確認してください。正しい構文は次のとおりです。

mysql> CREATE USER 'custom'@'host47.example.com' IDENTIFIED BY 'obscure';
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
    ->     ON expenses.*
    ->     TO 'custom'@'host47.example.com';

MySQL リファレンス マニュアルの「ユーザー アカウントの追加」を参照してください。

于 2012-09-21T11:58:26.500 に答える