単一のテーブルを除くすべての権限を MySQL データベースに付与するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-11-03 19:50:03
オリジナル
839 人が閲覧しました

How to Grant All Privileges to a MySQL Database Except for a Single Table?

単一のテーブルを除くすべての権限を MySQL データベースに付与する方法

質問:

ユーザーが求めるユーザーが特定のテーブルを除き、SELECT 権限のみを持つ必要があるデータベースへの完全なアクセスを許可するソリューション。

回答:

データベースに対するすべての権限を付与しようとしても、次に、目的のテーブルに対する SELECT 権限のみを明示的に付与するか、挿入、更新、および削除権限を取り消すと、エラーが発生します。

解決策:

動的 Grant ステートメントの生成:

プロセスを簡略化するために、次の SELECT CONCAT クエリを使用して必要な GRANT ステートメントを生成できます:

<code class="sql">SELECT CONCAT("GRANT UPDATE ON db.", table_name, " TO user@localhost;")
FROM information_schema.TABLES
WHERE table_schema = "YourDB" AND table_name <> "table_to_skip";</code>
ログイン後にコピー

ステップ:

  1. データベース上のユーザーのすべての権限を取り消します:

    <code class="sql">REVOKE ALL PRIVILEGES ON db.* FROM user@localhost;  </code>
    ログイン後にコピー
  2. SELECT CONCAT クエリを実行して GRANT ステートメントを生成します。
  3. 生成されたステートメントを貼り付けますMySQL クライアントにログインして実行します。

例:

REVOKE ALL PRIVILEGES ON my_db.* FROM my_user@localhost;  

SELECT CONCAT("GRANT UPDATE ON my_db.", table_name, " TO my_user@localhost;")
FROM information_schema.TABLES
WHERE table_schema = "my_db" AND table_name <> "special_table";
ログイン後にコピー

以上が単一のテーブルを除くすべての権限を MySQL データベースに付与するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート