ユーザーが mysql で作成できるデータベースの数を制限する方法があるかどうか疑問に思っていましたか? ユーザーにデータベースを作成する権限を与えたいのですが、無限の数のデータベースを作成することはできません。
ありがとう、ジェロルド
ユーザーが mysql で作成できるデータベースの数を制限する方法があるかどうか疑問に思っていましたか? ユーザーにデータベースを作成する権限を与えたいのですが、無限の数のデータベースを作成することはできません。
ありがとう、ジェロルド
ユーザーが自分のデータベースに対する権限のみを付与している場合は、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')