4

メインの DB ユーザーで Phpmyadmin ページ/workbench リモート アクセス アプリケーションにログインしていますが、権限の問題があります。

すべては、DB に保存したルーチンを変更しようとしたときに始まりました。ワークベンチ アプリケーションからこれらのルーチンを変更しようとしても、何も起こりません。これらのルーチンを呼び出して実行することはできますが、スクリプトを変更したり取得したりすることはできません。

別のフォーラムで何時間も検索し、アクセス許可コマンドに関するいくつかの回答を得ましたが、エラー #1142 、コマンドがユーザー (メインユーザー) に対して拒否されたという権限の問題が再び発生しました。

私はここで本当に迷っており、ルーティンのスクリプトにたどり着くためにすでに何時間もの作業を失っています。

最後に 1 つ - 私はこれらのルーチンを作成しましたが、同じユーザーに接続していましたが、別のリモート接続 (別の IP アドレス) から接続していました。

本当に助けていただければ幸いです。

4

2 に答える 2

2

ここに私がこれをどのように修正したかの解決策があります:

1)「mysql」データベースをユーザーに追加します。ログインしている

アドバイス: 関数と手順を変更できるようになりました

2) グローバル権限「SUPER」をユーザーに追加します

アドバイス: そうしないと、プロシージャ/関数を保存すると次のエラーが発生します: "エラー 1227: アクセスが拒否されました。この操作には (少なくとも 1 つの) SUPER 権限が必要です"

于 2014-07-31T11:30:02.170 に答える
0

CREATE DEFINER = 'admin'@'localhost' PROCEDURE account_count() SQL SECURITY INVOKER BEGIN SELECT 'アカウント数:', COUNT(*) FROM mysql.user; 終わり;

上記の例を参照してください。

スーパー ユーザーを使用してログインし、新しいユーザー名とホスト名に基づいて手順の定義者パラメーターを変更する必要があります。ストアド プロシージャを作成した同じ定義者が編集できます。

于 2013-01-08T11:57:15.477 に答える