この記事では、例を使用して、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) をブロックする方法
この記事では、参考までにMySQL 8.0.15のインストールと設定方法のグラフィックチュートリアル...
DockerイメージからDockerfileを取得する docker 履歴 --format {{....
今日は、MySQL データベースと SQL 標準 (および他のデータベース) の UPDATE ステ...
序文:さまざまな技術職の面接では、MySQL 関連の質問がよくされるようです。開発職の面接でも運用職...
HTML を使用してコンテンツをマークアップする目的は、Web ページにセマンティクスを与えることで...
1. 父から息子へ子コンポーネントにpropsフィールドを定義し、その型は配列です (フィールド値の...
1. yumソースを更新するCentOS7 のデフォルトの yum リポジトリの PostgreSQ...
Linux: Linux バージョン 3.10.0-123.9.3.el7.x86_64 ngin...
この記事では、参考までにMySQLの無料インストール構成チュートリアルを紹介します。具体的な内容は次...
Docker はコンテナを作成するときに、デフォルトでブリッジ ネットワークを使用し、IP アドレス...
空のリンク:つまり、ターゲット エンドポイントとのリンクはありません。フォーマット <a hr...
この記事の例では、アコーディオン効果を実現するためのVueの具体的なコードを参考までに共有しています...
最近、element-ui を統合したプロジェクトで vuethink を使用しました。以前は bo...
ブロガーは 1 ~ 2 か月間 MySQL を使用していませんでしたが、今日この問題に遭遇しました。...
目次前の単語使用シナリオ参照HTML要素クラスコンポーネント機能コンポーネント[DOMノードを親コン...