sql >> データベース >  >> RDS >> Mysql

特定のプレフィックスを持つ複数のテーブルに特権を付与する

    事前の注意:これは私の答えではありません。 http://lists.mysql.com/mysql/202610 で見つけました 簡単にするために、StephenCookにコピーして貼り付けました

    INFORMATION_SCHEMA.TABLESビューを使用して、GRANTステートメントを生成できます。次の行に沿ってクエリを記述します:

    SELECT   CONCAT('GRANT SELECT ON test.', TABLE_NAME, ' to ''foouser'';')
    FROM     INFORMATION_SCHEMA.TABLES
    WHERE    TABLE_SCHEMA = 'test'
          AND TABLE_NAME LIKE 'foo_%'
    

    次に、それを実行し、結果をコピーして、それらの結果をクエリまたはスクリプトとして実行します。もちろん、これで好きなだけ夢中になることができます。たとえば、多くのユーザーに対してこれを行う場合は、ユーザー名のパラメーターを受け取り、必要なときにいつでもツールとして使用できる保存されたプロシージャを作成できます。

    これはあなたが求めた構文ではありませんが、うまくいく素晴らしいトリックです。

    -

    テーブルスキーマ'test'をデータベースの名前に置き換えます。 foo_%は適切なprefix_%

    に置き換えることができます

    私はこれを自分で試しましたが、うまくいきました。



    1. Oracle SQL*Plusの使用方法

    2. MySQLトリガーのデバッグ

    3. テーブルの一部にmysqldumpを使用するにはどうすればよいですか?

    4. com.mysql.jdbc.Driverを使用したAndroid+MySQL