私のサーバーには、すべてのMySQLデータベースにアクセスできるユーザーがいくつかあります。私は特権を取り消そうとしていますが、どうすればいいのか分かりません。すべてのデータベースを表示するためのMySQLのアクセス許可
例:自分のサーバー上のすべてのデータベースにアクセスできるユーザーbob
があります。
mysql -e "select * from information_schema.user_privileges;" | grep bob
'bob'@'%' def SELECT NO
'bob'@'%' def INSERT NO
'bob'@'%' def UPDATE NO
'bob'@'%' def DELETE NO
'bob'@'%' def CREATE NO
'bob'@'%' def FILE NO
'bob'@'%' def CREATE USER NO
何もGRANT
、ALL
またはSUPER
のように飛び出していない:私はbob
が持っている権限を確認するには、以下を実行します。私は新しいデータベースsometest
を作成し、bob
のアカウントに切り替えて、bob
がsometest
にアクセスできることを確認します。私がここで何が紛れているか分からない。
編集:私はSHOW GRANTS FOR 'bob'@'%';
を実行し、参照してください。
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN,
PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, CREATE TEMPORARY TABLES,
LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW,
CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER, CREATE TABLESPACE
ON *.* TO 'bob'@'%'
1)どのようにこの権限をドロップしますか?
REVOKE SELECT, INSERT,... on *.* to 'bob'@'%';
それは私が起こるしたくない
GRANT ALL ON bobsdb.* TO 'bob'@'%';
のような権限を削除します:私は、私が実行した場合を想定しています。しかし、たぶんすべての特権を削除し、それらを最初から構築するのが最善の方法です。
2)このようなすべてのアクセス権をどのように識別しますか?すべてのユーザーを見なければならないのですか?
ありがとうございました!これは問題ではありませんが、問題の特定に役立ちました。編集を参照してください。 – Sal
私はあなたの後の質問への答えを含めるためにテキストを修正しました。 –