問題: ルーチンを変更できません。
私はmysql 5.1.47を使用しています。「testuser」というユーザーと「abc1、abc2、abc3」というデータベースを作成しました。
最初に私が試した
GRANT ALL ON *.* TO 'testuser'@'%';(also::> GRANT ALL PRIVILEGES ON *.* TO 'testuser'@'%';)
フラッシュ特権;
これも試した
GRANT ALL ON *.* TO 'testuser'@'%' IDENTIFIED BY 'passwd';
FLUSH PRIVILEGES;
これは正常に機能し、ユーザー testuser はルーチンを作成、変更できました。
次に、すべての権限を取り消し、ユーザー testuser を削除して、testuser を再度作成しました。それから私は試しました:
GRANT ALL ON abc1.* TO 'testuser'@'%';
これも試した
GRANT ALL ON abc1.* TO 'testuser'@'%' IDENTIFIED BY 'passwd';
GRANT ALTER ROUTINE ON abc1.* TO 'testuser'@'%';
FLUSH PRIVILEGES;
上記の方法 (特に Db) を使用すると、ルーチンを変更できません。localhost、%、127.0.0.1、local ip などのすべてのホストを試しました。ワークベンチを使用してルーチンを変更しようとしましたが、エラーなしで空白です。
ただし、testuser はルーチンを作成でき、testuser が作成したルーチンを編集できます。ただし、他のユーザーによって作成された他のルーチンは、testuser が編集することはできません (両方のルーチンが同じデータベースにあります)。
しかし、次のようなすべてのデータベースへのアクセスを許可すると:
GRANT ALL ON *.* TO 'testuser'@'%';
FLUSH PRIVILEGES;
その後、testuser はすべてのルーチンを編集できます。この問題を解決するのを手伝ってください。
ありがとう。ヴィジャイ