この記事では、例を使用して、MySQL アカウント管理の原則と実装方法を説明します。ご参考までに、詳細は以下の通りです。 アカウント管理実稼働環境でデータベースを操作する場合、接続にルート アカウントを使用しないでください。代わりに、特定のアカウントを作成し、このアカウントに特定の操作権限を付与してから接続して操作します。主な操作はデータの CRUD です。 アカウント操作を実行するときは、ルート アカウントでログインする必要があります。このアカウントはインスタンス レベルの最高の権限を持ち、通常はデータベース レベルの操作権限を使用します。 権限を付与する例として root を使用し、インスタンス レベルのアカウントでログインする必要があります。 主な業務は次のとおりです。 すべてのユーザーを表示 パスワードを変更 ユーザーを削除 1. すべてのユーザーを表示すべてのユーザーと権限情報は、MySQLデータベースのユーザーテーブルに保存されます。ユーザーテーブルの構造を表示します。 ユーザーからホスト、ユーザー、認証文字列を選択します。 結果 mysql> ユーザーからホスト、ユーザー、認証文字列を選択します。 +-----------+------------------+--------------------------------------------------------+ | ホスト | ユーザー | 認証文字列 | +-----------+------------------+--------------------------------------------------------+ | ローカルホスト | ルート | *E74858DB86EBA20BC33D0AECAE8A8108C56B17FA | | localhost | mysql.sys | *ここで使用できるパスワードは無効です | | ローカルホスト | debian-sys-maint | *EFED9C764966EDB33BB7318E1CBD122C0DFE4827 | +-----------+------------------+--------------------------------------------------------+ セット内の 3 行 (0.00 秒) 2. アカウントを作成して承認するログインして操作するには、インスタンスレベルのアカウントを使用する必要があります。ルートを例にとると、一般的な権限には、作成、変更、削除、挿入、更新、削除、選択などがあります。 2.1 アカウントの作成と承認'password' で識別される 'user name'@'access host' にデータベースの権限リストを付与します。 2.2 例1パスワード 123456 を持つ laowang という名前のアカウントを作成します。このアカウントにはローカルでのみアクセスでき、jing_dong データベース内のすべてのテーブルを読み取ることしかできません。 ステップ1: rootとしてログインする mysql -uroot -p パスワードを入力してEnterを押してください ステップ2: アカウントを作成し、すべての権限を付与する jing_dong.* に対する選択権限を 'laowang'@'localhost' に '123456' で識別して付与します。 例示する Python データベースのすべてのテーブルは、次の方法で操作できます: jing_dong.* laowang@localhost の権限を表示します。 ステップ3: ルートからログアウトする やめる ステップ4: Laowangアカウントを使用してログインする mysql -ulaowang -p パスワードを入力してEnterを押してください ログイン後の効果は以下のとおりです 2.3 例2パスワードが 12345678 の laoli アカウントを作成します。このアカウントはどのコンピューターからでもアクセスでき、jing_dong データベース内のすべてのテーブルに対する完全な権限を持ちます。 jing_dong.* のすべての権限を、「12345678」で識別される「laoli」@「%」に付与します。 アカウント操作1. 権限を変更するGRANT オプションを使用して、データベースの権限名を account@host に付与します。 2. パスワードを変更するルートとしてログインし、MySQLデータベースのユーザーテーブルを変更します。 パスワードを暗号化するにはpassword()関数を使用します ユーザーを更新します。set authentication_string=password('新しいパスワード')、user='ユーザー名'; 例: ユーザーを更新します。set authentication_string=password('123') where user='laowang'; 変更が完了したら権限を更新する必要があることに注意してください 権限をフラッシュする 3. リモートログイン(危険ですので、注意して使用してください)Ubuntuでmsyqlコマンドを使用して別のMySQLサーバーにリモート接続する場合は、次の方法で実行できますが、この方法は理解のためだけのものであり、実際の運用環境では使用しないでください。 /etc/mysql/mysql.conf.d/mysqld.cnfファイルを変更する vim /etc/mysql/mysql.conf.d/mysqld.cnf
サービスmysqlの再起動 別のUbuntuで接続をテストする
ping xxx.xxx.xx.xxx を使用して、ネットワークが正常かどうかを確認できます。 2) データベースがbind_addressパラメータで設定されているかどうかを確認します。 ローカルでデータベースにログインして my.cnf ファイルを表示すると、データベースの現在のパラメータに 'bind_address' などの変数が表示されます。 bind_address=127.0.0.1が設定されている場合は、ローカルでのみログインできます。 3) データベースにskip_networkingパラメータが設定されているかどうかを確認する このパラメータが設定されている場合、MySQLデータベースにローカルでのみログインできます。 4) ポートは正しく指定されていますか? 4. アカウントの削除構文1: rootとしてログインする ユーザー 'username'@'host' を削除します。 例: ユーザー 'laowang'@'%' を削除します。 構文2: rootとしてログインし、MySQLデータベースのユーザーテーブル内のデータを削除します。 user='username' のユーザーから削除します。 例: user='laowang' のユーザーから削除します。 -- 操作が完了したら、権限をフラッシュする必要があります ユーザーを削除するには、構文 1 を使用することをお勧めします。構文 1 でユーザーを削除できない場合は、構文 2 を使用します。 3. ルートアカウントのパスワードを忘れてしまったらどうすればいいですか?通常、ルートアカウントを管理するのは私たちの番ではないので、盲目的にならないでください mysql ルート ユーザーのパスワードを忘れた場合の解決策 (skip-grant-tables): スキップ許可テーブル 知らせ: この状況は、ルート パスワードを忘れてデータベースを再起動する必要がある場合にのみ使用されます。データベースの再起動が必要であり、セキュリティを保証するのが難しいため、ライブ ネットワーク環境では注意して使用してください。 1. 構成パラメータを変更する /etc/my.cnf 存在する [mysqld] 以下を追加: スキップ許可テーブル 2. MySQLを再起動する パラメータを有効にします。 サービスmysqldを再起動 3. 注意事項 現時点では、すべてのユーザーがパスワードなしで現在のデータベースにログインできるため、データベースのセキュリティは非常に低くなります。 4. パスワードを変更する 具体的な方法: https://www.jb51.net/article/169143.htm 5. パラメータを削除する a. パスワードを変更した後、設定ファイルから skip-grant-tables を削除します。 b. データベースを再起動します。 MySQL 関連のコンテンツに興味のある読者は、このサイトの次のトピックをチェックしてください: 「MySQL クエリ スキル」、「MySQL 共通関数の概要」、「MySQL ログ操作スキル」、「MySQL トランザクション操作スキルの概要」、「MySQL ストアド プロシージャ スキル」、および「MySQL データベース ロック関連スキルの概要」 この記事が皆様のMySQLデータベース設計に役立つことを願っています。 以下もご興味があるかもしれません:
|
<<: Nginxは特定のページへのIPアクセスを制限します
>>: nginx を使用して特定のインターフェース (URL) をブロックする方法
Alibaba Cloud ServerがFTPに接続できないFileZilla 425 データ接続...
数式 calc() は CSS の関数であり、主に数学演算に使用されます。 calc() を使用する...
今日、ブラウザの互換性の問題にいくつか遭遇しました。そのうちの 1 つは奇妙に感じました。Firef...
この記事では、画像拡大鏡効果を実現するためのJSの具体的なコードを参考までに紹介します。具体的な内容...
ここ数年、Web デザインには「全幅背景と固定幅コンテンツ」というトレンドが生まれています。このデザ...
これは非常にシンプルな純粋な CSS3 の白い雲の浮遊する背景効果です。浮かぶ白い雲の特殊効果は、C...
目次序文現地調査ケースの再現要約する序文最近、友人が突然WeChatで連絡してきて、MySQLでデー...
1. my.iniファイルにskip-grant-tablesを追加し、MySQLサーバーを再起動し...
序文MySql で主キーの競合または一意キーの競合が発生した場合、挿入方法に応じてエラーを回避するた...
コアSQL文数字を含まない MySQL クエリ ステートメント: SELECT * FROM tes...
目次1. インスタンスをインストールして作成する2. vue-router4の新機能2.1 動的ルー...
目次1. pidファイルの紹介2.ソケットファイルの紹介要約:ソケット ファイル: Unix ドメイ...
コードサンプルヘッドタグにコード行を追加します: XML/HTML コードコンテンツをクリップボード...
概要いずれかのデータベースに対する操作は他のデータベースに自動的に適用され、2 つのデータベースのデ...
fd コマンドは、Linux ファイル システムを検索するためのシンプルで簡単な方法を提供します。...