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

MYSQL Update権限は、権限も選択する必要がありますか?

    可能ですが、問題は、UPDATE-QueryにWHERE句が含まれていることです。この句は、少なくとも内部的にフィールドをクエリする必要があります。したがって、ここではSELECT権限が必要です。

    それ以外の場合は、ブルートフォース手法を使用して、UPDATE-Queryを使用し、行に影響があったかどうかを確認することで、テーブルの実際の内容を取得しようとする可能性があります。

    例:UPDATEcustomers SET some_irrellevant_field =1 WHERE user ='jimmy' AND sexual_orientation ='2'影響を受ける行数が0より大きいとすぐに、情報が得られます。したがって、それを許可することはおそらく危険です。

    ただし、単一の列に明示的にアクセス許可を与えることができます。特定のIDを持つユーザーのパスワードハッシュを更新するとします。データベースユーザーにid列の選択権限を付与し、ハッシュ列の更新権限を付与します。

    PHPMyAdminテーブル固有の権限ダイアログ(申し訳ありませんが、スクリーンショットの一部はドイツ語です):>

    その後、これは正常に機能するはずです:UPDATE users SET hash ='0123456789abcdef' WHERE id =1234

    または、DBMSまたはストレージエンジンで列レベルの権限を使用できない場合でも、別のテーブルまたはデータベースを使用して、必要に応じて結合することができます。



    1. COUNTは、レコードをプルしてコードでカウントするよりも高速ですか?

    2. MySQLは副選択内のlimit句をサポートしていませんが、どうすればよいですか?

    3. PSQLException:ResultSetが適切に配置されていません。おそらく、次に呼び出す必要があります

    4. T-SQLで2つの日時の差を計算する方法