この記事では、例を使用して、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) をブロックする方法
基本的な概念: Macvlanの動作原理: Macvlan は、Linux カーネルでサポートされて...
コンテナの起動コマンドを取得する方法コンテナはすでに作成されていますが、その起動パラメータ(データが...
問題の説明: 非同期リクエストの数が不確定な場合、数百の http リクエストが瞬時に発生したときに...
この記事では、Vueを使用して虫眼鏡付きの検索ボックスを実装する方法を紹介します。具体的な内容は次の...
まず、Docker とは何かを理解しましょう。 Docker は、アプリケーションをデプロイするため...
react.js フレームワーク Redux https://github.com/reactjs/...
この記事では、VMware Workstation 14 Pro (仮想マシン) にシステムをインス...
この記事では、参考までに、シンプルなショッピングカートケースを実装するためのVueの具体的なコードを...
前の章では、高性能な MySQL に不可欠な、最適化されたデータ型の選択方法とインデックスの効率的な...
React Hooks は React 16.8 で導入された新しい機能で、クラスを使用せずに状態や...
時間に余裕を持って、過去を忘れましょう。前のセクションでは、[検索] フォームとクエリおよびリセット...
さっそく、レンダリングを見てみましょうソースコードは以下のとおりです <!DOCTYPE ht...
目次JavaScript 関数呼び出しの典型的な例JS関数の定義と呼び出し方法要約するJavaScr...
/usr/local/nginx/conf と入力する sudo cd /usr/local/ngi...
MySQL8.0.22のインストールと設定(超詳細)参考までに、具体的な内容は次のとおりです。みなさ...