2017-01-28 5 views
1

私のサーバーには、すべての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 

何もGRANTALLまたはSUPERのように飛び出していない:私はbobが持っている権限を確認するには、以下を実行します。私は新しいデータベースsometestを作成し、bobのアカウントに切り替えて、bobsometestにアクセスできることを確認します。私がここで何が紛れているか分からない。

編集:私は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)このようなすべてのアクセス権をどのように識別しますか?すべてのユーザーを見なければならないのですか?

答えて

2

あなたはコマンドを使用して、ユーザーの助成金を閲覧することができるはずです。

SHOW GRANTS FOR 'bob'@'localhost'; 

MySQLのマニュアルから:

SHOW DATABASES権限を発行してデータベース名を確認するために、アカウントを有効にしますSHOW DATABASEステートメントこの特権を持たないアカウントは、特権を持っているデータベースのみを参照し、サーバが--skip-show-databaseオプションで起動された場合はその文をまったく使用できません。グローバル権限は、データベースの特権であることに注意してください。

SHOW DATABASESが有効な場合は、その権限を取り消します。

REVOKE SHOW DATABASES ON *.* FROM 'bob'@'localhost'; 

最後に、コマンドを使用して、すべての特権をリロードします。

FLUSH PRIVILEGES; 

(またはMySQLを再起動します - それはオプションだ場合 - 多くの場合、それはないですが)。

P .:「localhost」をdbホスト名に置き換える必要があります。

いくつかの参照:

編集:

は、あなたの質問に答えるために

1)この許可をどのように削除しますか?私が実行した場合、私は想定していますREVOKE SELECT, INSERT,... on *.* to 'bob'@'%';

あなたは、単にどのようにこのようなすべての権限を識別しない)REVOKE ALL ON *.* TO 'bob'@'%';

2を実行するだろうか?すべてのユーザーを見なければならないのですか?

はこのblog post.Disclamerを参照してください:私はこのブログに関連付けられていません。

+0

ありがとうございました!これは問題ではありませんが、問題の特定に役立ちました。編集を参照してください。 – Sal

+0

私はあなたの後の質問への答えを含めるためにテキストを修正しました。 –

関連する問題