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

1045、ユーザー'username' @'NOT-local'のアクセスが拒否されました(パスワードを使用:YES)

    サーバーへのログインを表示します(%に注意してください) 任意のホストまたはワイルドカードを意味します)

    select user,host from mysql.user;
    
    +-----------+------------+
    | user      | host       |
    +-----------+------------+
    | ajax_guy  | %          |
    | joe7      | %          |
    | joe8      | %          |
    +-----------+------------+
    

    特定のユーザーにどのような助成金が存在するかを示します。

    show grants for 'ajax_guy'@'%';
    
    +----------------------------------------------------------------------
    | Grants for [email protected]%                                              
    +----------------------------------------------------------------------
    | GRANT USAGE ON *.* TO 'ajax_guy'@'%' IDENTIFIED BY PASSWORD ...
    | GRANT ALL PRIVILEGES ON `ajax_stuff`.* TO 'ajax_guy'@'%'           
    | GRANT ALL PRIVILEGES ON `ajax_stuff`.`ajax_stuff` TO 'ajax_guy'@'%'
    +----------------------------------------------------------------------
    

    特定のログインに特定のデータベースへのアクセスを許可する方法。以下では、so_gibberishに対するすべての権限をユーザーに付与しています。 データベース

    grant ALL on so_gibberish.* to 'ajax_guy'@'%';
    

    有効な助成金を見てください そのログインの場合

    +----------------------------------------------------------------------
    | Grants for [email protected]%                                              
    +----------------------------------------------------------------------
    | GRANT USAGE ON *.* TO 'ajax_guy'@'%' IDENTIFIED BY PASSWORD ...
    | GRANT ALL PRIVILEGES ON `ajax_stuff`.* TO 'ajax_guy'@'%'           
    | GRANT ALL PRIVILEGES ON `so_gibberish`.* TO 'ajax_guy'@'%'         
    | GRANT ALL PRIVILEGES ON `ajax_stuff`.`ajax_stuff` TO 'ajax_guy'@'%'
    +----------------------------------------------------------------------
    

    新しいログインを作成するdrew_saturday パスワードfriday987 。彼はデータベースに対するすべての特権を持っています so_gibberish 任意のホストからログインできます(%

    grant ALL on so_gibberish.* to 'drew_saturday'@'%' IDENTIFIED BY 'friday987';
    
    select user,host,password from mysql.user where user='drew_saturday';
    
    +---------------+------+-------------------------------------------+
    | user          | host | password                                  |
    +---------------+------+-------------------------------------------+
    | drew_saturday | %    | *4600ED0F377308959665877BD327D4788DC2071F |
    +---------------+------+-------------------------------------------+
    

    ちなみに、上記のパスワードはハッシュ化されたパスワードです。

    注:MySQL 5.7の場合、上記のコマンドは次のようになります。

    select user,host,authentication_string from mysql.user where user='drew_saturday';
    

    付与 のMysqlマニュアルページ 。 *でgrant ALL on *. ... 。それはすべてになります システム内のデータベース。マニュアルを読むだけで、少ないほど多くなります。

    管理者は、データベース内のほんの一握りのテーブル(データベース内のすべてのテーブルではない)へのアクセスをログインに許可したい場合があります。マニュアルは必読です。

    そして最後にもう1つ。 'drew_saturday' @'%'は、'drew_saturday' @'NOT-local'(タイトルから借用)とは異なるログインです。これらは、異なる権限を持つ異なるログインです。それが私が最初に書いたポイントです。




    1. ユーロ記号をmysqlデータベースに保存する方法は?

    2. MySQLで新しいテーブルを作成するときにトリガーを自動的に作成する方法はありますか?

    3. PostgreSQLで文字列を数値に変換する方法

    4. GI19cRPMパッケージマネージャーデータベース