MySQL ユーザーと権限 MySQL には、MySQL と呼ばれるシステムに付属するデータベースがあります。データベースをインストールすると、システムにはいくつかのデータベースが付属しますが、MySQL はその 1 つです。MySQL データベースには、ユーザー テーブルと呼ばれるユーザー アカウント権限に関連するテーブルがあり、作成されたユーザーが含まれています。 MySQL の完全なユーザー名は、ユーザー + ホスト名で構成されます。ホスト名によって、ユーザーがログインできるホストが決まります。 1. ユーザーの作成とパスワードの変更 1. ユーザーの作成 'PASSWORD' で識別されるユーザー 'USERNAME'@'HOST' を作成します。 ユーザー名: ユーザー名 例: MariaDB [(なし)]> 'centos' で識別されるユーザー [email protected] を作成します。 クエリは正常、影響を受けた行は 0 行 (0.01 秒) MariaDB [(なし)]> mysql.user からユーザー、ホスト、パスワードを選択します。 +--------+-----------------------+--------------------------------------------------------+ | ユーザー | ホスト | パスワード | +--------+-----------------------+--------------------------------------------------------+ | ルート | ローカルホスト | | | ルート | localhost.localdomain | | | ルート | 127.0.0.1 | | | ルート | ::1 | | | | ローカルホスト | | | | ローカルホスト.ローカルドメイン | | | マスリ | 192.168.73.133 | *128977E278358FF80A246B5046F51043A2B1FCED | +--------+-----------------------+--------------------------------------------------------+ セット内の行数は 7 です (0.00 秒) MySQL には匿名アカウントがあり、セキュリティ強化スクリプト mysql_secure_installation を実行して削除することも、手動で削除することもできます。 ユーザーを削除するには: ユーザー 'ユーザー名'@'ホスト' を削除します。 例: MariaDB [(なし)]> mysql.user からユーザー、ホスト、パスワードを選択します。 +--------+-----------------------+--------------------------------------------------------+ | ユーザー | ホスト | パスワード | +--------+-----------------------+--------------------------------------------------------+ | ルート | ローカルホスト | | | ルート | localhost.localdomain | | | ルート | 127.0.0.1 | | | ルート | ::1 | | | | ローカルホスト | | | | ローカルホスト.ローカルドメイン | | | マスリ | 192.168.73.133 | *128977E278358FF80A246B5046F51043A2B1FCED | +--------+-----------------------+--------------------------------------------------------+ セット内の行数は 7 です (0.00 秒) MariaDB [(なし)]> DROP USER ''@'localhost'; クエリは正常、影響を受けた行は 0 行 (0.00 秒) MariaDB [(なし)]> DROP USER ''@'localhost.localdomain'; クエリは正常、影響を受けた行は 0 行 (0.00 秒) MariaDB [(なし)]> mysql.user からユーザー、ホスト、パスワードを選択します。 +--------+-----------------------+--------------------------------------------------------+ | ユーザー | ホスト | パスワード | +--------+-----------------------+--------------------------------------------------------+ | ルート | ローカルホスト | | | ルート | localhost.localdomain | | | ルート | 127.0.0.1 | | | ルート | ::1 | | | マスリ | 192.168.73.133 | *128977E278358FF80A246B5046F51043A2B1FCED | +--------+-----------------------+--------------------------------------------------------+ セット内の行数は 5 です (0.00 秒) 2. パスワードの変更 MySQLのパスワードを変更する ユーザーのパスワードを設定する = PASSWORD('クリアテキストパスワード') UPDATE テーブル SET パスワード = password('クリアテキスト パスワード') 例: masuriユーザーのパスワードを変更する MariaDB [(なし)]> [email protected] のパスワードを設定する = PASSWORD ('magedu'); クエリは正常、影響を受けた行は 0 行 (0.00 秒) MariaDB [(なし)]> mysql.user からユーザー、ホスト、パスワードを選択します。 +--------+-----------------------+--------------------------------------------------------+ | ユーザー | ホスト | パスワード | +--------+-----------------------+--------------------------------------------------------+ | ルート | ローカルホスト | | | ルート | localhost.localdomain | | | ルート | 127.0.0.1 | | | ルート | ::1 | | | マスリ | 192.168.73.133 | *6B8CCC83799A26CD19D7AD9AEEADBCD30D8A8664 | +--------+-----------------------+--------------------------------------------------------+ #パスワードは現在変更されています ルートアカウントのパスワードが空です。ルートパスワードを設定します。いちいち設定するのは面倒なので、テーブル変更操作を使ってパスワードを変更することもできます。 MariaDB [(なし)]> mysql.user を更新し、password=password('centos') を設定し、user='root' とします。 クエリは正常、4 行が影響を受けました (0.01 秒) 一致した行: 4 変更された行: 4 警告: 0 MariaDB [(なし)]> mysql.user からユーザー、ホスト、パスワードを選択します。 +--------+-----------------------+--------------------------------------------------------+ | ユーザー | ホスト | パスワード | +--------+-----------------------+--------------------------------------------------------+ | ルート | ローカルホスト | *128977E278358FF80A246B5046F51043A2B1FCED | | ルート | localhost.localdomain | *128977E278358FF80A246B5046F51043A2B1FCED | | ルート | 127.0.0.1 | *128977E278358FF80A246B5046F51043A2B1FCED | | ルート | ::1 | *128977E278358FF80A246B5046F51043A2B1FCED | | マスリ | 192.168.73.133 | *6B8CCC83799A26CD19D7AD9AEEADBCD30D8A8664 | +--------+-----------------------+--------------------------------------------------------+ セット内の行数は 5 です (0.00 秒) 現時点では、パスワードは変更されていますが、まだログインできません。権限を更新する必要があります。 MariaDB [(なし)]> FLUSH PRIVILEGES; クエリは正常、影響を受けた行は 0 行 (0.00 秒) 2. MySQL 権限管理 権限管理には、管理、プログラム、データベース レベル、テーブル レベル、フィールド レベルなど、複数のカテゴリの権限が含まれます。 管理: ユーザーを作成できるかどうか、データベース リストを表示できるかどうか、構成ファイルを再ロードできるかどうか、データベースを閉じることができるかどうか、レプリケーションに関連する機能を実行できるかどうか、プロセスを管理できるかどうか、一時テーブルを作成できるかどうか、データベース内のファイルを作成できるかどうか。 プログラムには、主に関数、ストアド プロシージャ、トリガーの 3 種類のプログラムが含まれます。たとえば、これらのプログラムを作成、変更、削除、実行できます。また、ライブラリ、テーブル、フィールド レベルで権限を使用することもできます。たとえば、ライブラリ、テーブル、フィールドで操作を追加、削除、クエリ、変更することができます。 1. 認可 GRANT ユーザーを認証する際に、ユーザーが存在しない場合は作成することができます。認証する前に、認証権限を持つ管理者であることを確認する必要があります。 付与 priv_type [(列リスト)] [, priv_type [(列リスト)]] ... ON [オブジェクトタイプ] 特権レベル TO user_specification [, user_specification] ... [REQUIRE {NONE | ssl_option [[AND] ssl_option] ...}] [with_option と共に...] 例: WordPress ユーザーを作成し、承認します。 MariaDB [(なし)]> CREATE DATABASE wordpress; クエリは正常、1 行が影響を受けました (0.02 秒) MariaDB [(なし)]> 'mylinuxops' によって識別される wpuser@'192.168.73.%' に wordpress.* のすべての権限を付与します。 クエリは正常、影響を受けた行は 0 行 (0.00 秒) 2. ユーザーの権限を確認する MariaDB [(なし)]> wpuser@'192.168.73.%' の権限を表示します。 +--------------------------------------------------------------------------------------------------------------------------------------------------+ | [email protected].% への許可 | +--------------------------------------------------------------------------------------------------------------------------------------------------+ | パスワード '*EC0DBFB480593BB6ED2EC028A4231A72D8137406' で識別される 'wpuser'@'192.168.73.%' に *.* の使用を許可 | | `wordpress`.* のすべての権限を 'wpuser'@'192.168.73.%' に付与します | +--------------------------------------------------------------------------------------------------------------------------------------------------+ セット内の 2 行 (0.00 秒) 3. 認可のためのその他のオプション MAX_QUESRIES_PER_HOUR count #1 時間あたりのクエリの最大数 MAX_UPDATES_PER_HOUR count #1 時間あたりの変更の最大数 MAX_CONNECTIONS_PER_HOUR count #1 時間あたりの接続の最大数 MAX_USER_CONNECTIONS count #ユーザー接続の最大数 権限を取り消す 取り消す priv_type [(列リスト)] [, priv_type [(列リスト)]] ... ON [オブジェクトタイプ] 特権レベル ユーザー[、ユーザー]から... 例: MariaDB [(なし)]> wordpress.* の wpuser@'192.168.73.%' からの削除を取り消します。 クエリは正常、影響を受けた行は 0 行 (0.00 秒) MariaDB [(なし)]> wpuser@'192.168.73.%' の権限を表示します。 +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | [email protected].% への許可 | +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | パスワード '*EC0DBFB480593BB6ED2EC028A4231A72D8137406' で識別される 'wpuser'@'192.168.73.%' に *.* の使用を許可 | | 'wpuser'@'192.168.73.%' に対して、`wordpress`.* に対して SELECT、INSERT、UPDATE、CREATE、DROP、REFERENCES、INDEX、ALTER、CREATE TEMPORARY TABLES、LOCK TABLES、EXECUTE、CREATE VIEW、SHOW VIEW、CREATE ROUTINE、ALTER ROUTINE、EVENT、TRIGGER の権限を付与します | +------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ セット内の 2 行 (0.00 秒) # この時点で、wpuser@'192.168.73.%' には削除権限がありません MySQL ルートパスワードのクラッキング 作業中にルート パスワードを紛失してしまうことがあります。ルート パスワードを取得するには、次の方法を使用できます。 以下はルートパスワードを解読する方法のデモンストレーションです 1. パスワードが不明なためMySQLにログインできない [root@localhost ~]# mysql エラー 1045 (28000): ユーザー 'root'@'localhost' のアクセスが拒否されました (パスワード使用: NO) 2. クラッキング 1. 設定ファイル/etc/my.cnfを変更し、2行のパラメータを追加します。 skip_grant_tables: 認証テーブル情報をスキップします。このオプションを有効にすると、MySQL を再度使用するためにパスワードを使用する必要がなくなりますが、他のリモート ユーザーもパスワードなしでログインできるため、一定のリスクがあります。 skip_networking: ネットワーク機能をオフにします。skip_grant_tables オプションのみを有効にすると、他のユーザーがパスワードなしで MySQL にログインできてしまい、非常に危険です。そのため、ネットワーク機能をオフにして、ローカルユーザーのみが操作できるようにする必要があります。 [root@localhost ~]# vim /etc/my.cnf [mysqld] skip_networking=on #ネットワーク機能を有効にしない skip_grant_tables=on #認証テーブルをスキップする [root@localhost ~]# service mysqld restart #ロケーションファイルを変更した後、サービスを再起動する必要があります mysqld を再起動しています (systemctl 経由): [ OK ] 2. MySQLにログインしてパスワードを変更する [root@localhost ~]# mysql #パスワードを入力せずにログインできます。MariaDB モニターへようこそ。コマンドは ; または \g で終わります。 MariaDB接続IDは11です サーバーバージョン: 10.2.23-MariaDB-log ソース配布 Copyright (c) 2000、2018、Oracle、MariaDB Corporation Ab およびその他。 ヘルプを表示するには、「help;」または「\h」と入力します。現在の入力ステートメントをクリアするには、「\c」と入力します。 MariaDB [(なし)]> UPDATE mysql.user SET password=PASSWORD('123456') where user='root'; #ルートパスワードを変更します クエリは正常です。4 行が影響を受けました (0.01 秒) 一致した行: 4 変更された行: 4 警告: 0 3. パスワードを変更した後、設定ファイルを復元する必要があります。 有効にした2つのオプションを登録解除または削除し、サービスを再起動します。 [root@localhost ~]# vim /etc/my.cnf [mysqld] #ネットワークをスキップ=オン #skip_grant_tables=オン [root@localhost ~]# サービスmysqldを再起動します mysqld を再起動しています (systemctl 経由): [ OK ] 4. 新しいパスワードを使用してMySQLにログインします [root@localhost ~]# mysql -uroot -p123456 MariaDB モニターへようこそ。コマンドは ; または \g で終わります。 MariaDB接続IDは10です サーバーバージョン: 10.2.23-MariaDB-log ソース配布 Copyright (c) 2000、2018、Oracle、MariaDB Corporation Ab およびその他。 ヘルプを表示するには、「help;」または「\h」と入力します。現在の入力ステートメントをクリアするには、「\c」と入力します。 MariaDB [(なし)]> 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: Vue3 の SetUp 関数のプロパティとコンテキスト パラメータの詳細な説明
>>: Alibaba Cloud Ubuntu 16.04 が IPSec サービスを構築
<base target=_blank> は、基本リンクのターゲット フレームを新しいペ...
Mysql マスタースレーブ同期の Last_IO_Errno:1236 エラーの原因は何ですか? ...
目次1. コンストラクタの定義と呼び出し2. 新しいキーワードの目的3. コンストラクタの問題: メ...
結合では、ネスト ループ結合アルゴリズムが使用されます。ネスト ループ結合には 3 つの種類がありま...
VMware Workstationsが仮想マシンエラーを起動する エラー レポートのリンク htt...
機能: 前のページまたは次のページにジャンプします。要素: ページングの基本要素は、前のページ + ...
mysql ストアド プロシージャの概念:特定のタスク (クエリと更新) を実行できる、データベース...
最近、データベース データのスケジュールされた移行を実行する必要があります。実行プロセス中に何らかの...
前提条件: Mac、zsh がインストールされ、bash のときに mysql がダウンロードされ、...
目次非同期トラバーサル非同期反復可能トラバーサル非同期反復生成非同期メソッドと非同期ジェネレーター非...
MySQL 内部には至るところにキャッシュがあります。MySQL のソースコードを読むと、キャッシ...
Centos7 上で openresty 用の Dockerfile を作成し、ビルドしました。 d...
1. 環境と準備1. Ubuntu 14.04 2.Docker環境2. 建設プロセス1. ミラーソ...
GTID の利点により、従来のファイル POS ベースのレプリケーションを GTID ベースのレプリ...
目次1. WeChatパブリックプラットフォームからWeChat開発者ツールをダウンロードする2. ...