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

問題を引き起こす追加のMySQLデータベースへの権限の付与

    MySQLは、ユーザー名とホストの両方によってユーザーを識別します。 MySQLがログイン時に認証を行う場合、MySQLは最初に完全に一致するホスト名を探します。完全に一致するものが見つからない場合は、「%」ワイルドカードを含むホストを探します。

    GRANT ... TO [email protected] 、MySQLは新しいユーザーを作成しました(IDENTIFIED BYがなかったため、パスワードはありません ステートメントで与えられます。

    次に、myuserとしてログインしようとしたときに何が起こりましたか ローカルホストから、mysqldは'myuser'@'localhost'に一致するエントリを見つけようとしました mysql.userテーブルでそれを見つけました。そして、セッションはそのユーザーに割り当てられた特権を取得しました。

    (もう少し正確に言うと、mysqldはmysql.userテーブルの内容を実際には調べません。これは、ビルド時にテーブルから入力されたメモリ内構造を実際に調べます。メモリ構造は、GRANT、REVOKE、またはFLUSH PRIVILEGESステートメントによってトリガーされます。)

    新しいユーザーを追加する前に何が起こっていたのか、mysqldはユーザーとホスト名に完全に一致するものを探していましたが、見つかりませんでした。ただし、「%」ワイルドカードを使用したエントリが見つかったため、それに一致したため、セッションは「myuser」@「%」ユーザーに付与されたすべての権限を取得しました。

    2人のユーザー'u'@'%' および'u'@'localhost' 互いに分離して区別されます。特権は、各ユーザーに個別に付与する必要があります。 'u'@'%'に付与された特権 そのユーザーにのみ適用し、'u'@'localhost'には適用しない 。



    1. SchemaSpyPostgreSQL-警告-接続エラー

    2. MySQLのtimestampdiff()はSQL Serverのdatediff()と同等ですか?

    3. Oracleにはフィルタリングされたインデックスの概念がありますか?

    4. 挿入操作で別のDDL操作を待機させることはできますか?