0

root ユーザーから MySQL にログインしました。

コマンドを実行しました:-

create user new;

次に、ユーザー new としてログインしました。次のコマンドを実行しました:-

use test;
show grants;

出力は:-

GRANT USAGE ON *.* TO ''@'LOCALHOST'

私が理解しているように、新しいユーザーには、このテーブルに対するテーブルの削除権限またはその問題に関する権限(USAGEを除く)がありません。

ただし、次を実行すると:-

DROP TABLE test_table;

クエリは成功です。なぜこれが起こっているのか説明していただけますか?このユーザーによるテーブルの削除を無効にし、このユーザーから他の権限を取り消すにはどうすればよいですか?

前もって感謝します。

4

2 に答える 2

0

マニュアルによると、あなたが考慮する必要があるより多くがあります:

SHOW GRANTSは、指定されたアカウントに明示的に付与された特権のみを表示します。アカウントで他の特権を使用できる場合がありますが、それらは表示されません。たとえば、匿名アカウントが存在する場合、指定されたアカウントはその特権を使用できる可能性がありますが、SHOWGRANTSはそれらを表示しません。

于 2012-11-05T17:59:06.740 に答える
0

http://dev.mysql.com/doc/refman/5.1/en/create-user.htmlは、CREATE USER が mysql.user テーブルに新しい行を作成し、アカウントに権限を割り当てないと述べています。ユーザー new で SHOW GRANTS FOR CURRENT_USER を実行すると、何が得られますか?

于 2012-11-05T18:04:26.720 に答える