1

ユーザーが mysql で作成できるデータベースの数を制限する方法があるかどうか疑問に思っていましたか? ユーザーにデータベースを作成する権限を与えたいのですが、無限の数のデータベースを作成することはできません。

ありがとう、ジェロルド

4

1 に答える 1

0

ユーザーが自分のデータベースに対する権限のみを付与している場合は、information_schema.SCHEMA_PRIVILEGES作成を許可する前に、ユーザーが既に持っているデータベースの数を確認できます。ただし、これを機能させるにCREATE DATABASEは、ユーザーが直接禁止し、代わりに別の特権データベース ユーザーを介してアプリケーション コードでデータベースを作成し、新しく作成されたデータベースへのアクセスをユーザーに許可する必要があります。

SELECT 
  GRANTEE, 
  COUNT(DISTINCT TABLE_SCHEMA) AS NUM_DBS
FROM information_schema.SCHEMA_PRIVILEGES
GROUP BY GRANTEE

NUM_DBSが制限を超えている場合は、新しいデータベースを作成しないでください。

ユーザーが「所有する」データベース以外のデータベースのアクセス許可をユーザーに付与する場合は、次のような方法でそれらを除外することにより、クエリでそれを説明する必要があることに注意してください

WHERE TABLE_SCHEMA NOT IN ('other','dbs','you','grant','access','on')
于 2012-06-08T13:49:25.280 に答える