1

ユーザーが select ステートメント権限のみを持つ必要がある 1 つのデータベースを除いて、ユーザーにすべてのデータベースに対する拡張権限を持たせたいと考えています。

データベース固有のオプションのみを使用して選択するように制限しようとしましたが、効果がなく、ユーザーは引き続きデータベースを更新できます。拡張された特権がデータベース固有のオプションを上書きするのではないかと思います。

4 人のユーザーと 100 以上のデータベースがあるため、すべてのデータベースに対してデータベース固有の権限を管理したくありません。

4

2 に答える 2

1

知る限り、特定のデータベースを除外することはできませんが、ワイルドカードで GRANT することはできます。したがって、1 つのデータベース例外に別の名前を付けると、残りの例外にその 1 つの例外にはないプレフィックスが含まれる場合、ワイルドカードを使用して同様のことを実現できます。

たとえば、すべてのデータベースに「shared_」または「common_」などのプレフィックスが付いている場合、「common_%」のすべての権限を付与できますが、プレフィックスなしで 1 つのデータベースの権限を個別に制御できます。

大量のデータベースの名前を変更しなければならない可能性があるため、これはまだ関係がありますが、管理する権限はデータベースごとに 1 つではなく、2 つしかありません。

于 2013-07-15T17:30:03.163 に答える
0

「1 つを除くすべて」という形で MySQL ユーザー特権を付与する方法はないと思います。ただし、MySQL クエリを使用して、次のような GRANT クエリのリストを生成できます。

SELECT CONCAT('GRANT ALL ON ',SCHEMA_NAME,' TO user_name') FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME!='exclude_database'

次に、すべてのユーザーに対してそれらを実行します。

于 2013-07-09T20:31:04.673 に答える