名前MySQL 紹介する必要はありません。ほとんどのデータベース管理者とユーザーは、効果的な RDBMS としての堅牢性、効率性、信頼性を十分に認識しています。 (リレーショナルデータベース管理システム 。
MySQL 属性; 信頼性 は、完全に活用および実装されていない限り、単なる名前です。 MySQLセキュリティメトリックの信頼性は、いくつかの管理面に依存しています。それらの1つは、既存のデータベースユーザーとその個々のアクセス許可レベルの管理です。
データベース管理者は、登録されているすべてのデータベースユーザーを柔軟にプレビューできるようにする必要があります。アクティブか非アクティブかを問わず、データベースシステムの整合性を損なわないように、アクセス許可の特権を監査します。
前提条件
- Linuxコマンドライン環境に慣れ、Sudoerユーザーになる。
- MySQLまたはMariaDBを実行している Linuxオペレーティングシステム上のサーバー。
OracleによるMySQLの買収により、MySQLは Community Editionの両方として存在できるようになります。 ソフトウェアとEnterpriseEdition ソフトウェア。 MariaDB MySQLのオープンソースフォークです 。 MariaDBを使用しているかどうか またはMySQL 、データベースコマンドの手動実装はまったく同じです。
LinuxにMySQLデータベースサーバーをインストールする
Linuxオペレーティングシステムのディストリビューションに応じて、 MySQLをインストールできます。 またはMariaDB または次のインストールコマンドから:
LinuxにMySQLをインストールする
$ sudo apt-get install mysql-server [On Debian, Ubuntu and Mint] $ sudo yum install mysql-server [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux] $ sudo pacman -S mysql-server [On Arch Linux] $ sudo zypper install mysql-server [On OpenSUSE]
LinuxにMariaDBをインストールする
$ sudo apt-get install mariadb-server [On Debian, Ubuntu and Mint] $ sudo yum install mariadb-server [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux] $ sudo pacman -S mariadb-server [On Arch Linux] $ sudo zypper install mariadb-server [On OpenSUSE]
Linuxでの安全なMySQLデータベースサーバー
インストールしたら、 MySQLを保護する必要があります 新しいrootパスワードの設定、匿名ユーザーの削除、rootアクセスの無効化、テストデータベースの削除、および特権の再読み込みによるサーバーのインストール。
$ sudo mysql_secure_installation
MySQLユーザーアカウントの作成
RDBMSに複数のユーザーが存在する必要があります この記事が効果的であるために。 MySQLユーザーアカウントを作成するための構文は次のとおりです。
CREATE USER [IF NOT EXISTS] account_name IDENTIFIED BY 'password';
特定のデータベースホスト名に関連付けられたデータベースユーザーを作成するには、「 account_name 上記の構文の」部分は次のようになります。
username@hostname
データベースユーザーがMySQLDBに自由に接続できるようにする場合 任意のリモートホスト/マシンからサーバーを作成し、以下のみを使用します:
username
「ユーザー名」の実装 および「ホスト名」 特殊文字で定義されているものは引用符で囲む必要があります。
'username'@ 'hostname'
次に、いくつかのDBユーザーを作成しましょう:
MySQLクライアントツールを使用して、rootユーザーとしてMySQLサーバーにアクセスします。
$ sudo mysql -u root -p
以前のセットアップrootパスワードを入力します:
まず、データベースシステム内の現在のMySQLユーザーアカウントを一覧表示します。
MariaDB [(none)]> select user from mysql.user;
ご覧のとおり、パスワードを以前に設定したデフォルトのrootユーザーしかありません。
リモート接続できるDBユーザー(ユーザー名)をいくつか作成しましょう。 )このデータベースサーバーおよびローカルでのみ接続する他のサーバー( username @ hostname 。
MariaDB [(none)]> create user LinuxShellTips@localhost identified by 'Sec1pass!'; MariaDB [(none)]> create user LinuxShellTipster identified by 'Min1pass!'; MariaDB [(none)]> create user LinuxShellTips_tutor identified by 'Min1pass!';
MySQLユーザーアカウントの一覧表示
まず、データベースに存在するすべてのユーザーを一覧表示します。
MariaDB [(none)]> SELECT user FROM mysql.user;
また、アカウントのパスワードの有効期限ステータスやリンクされたホスト名など、DBユーザーに関連する情報をさらにリストする必要がある場合もあります。
MariaDB [(none)]> SELECT user, host, account_locked, password_expired FROM user;
ホスト「localhost」の下にないユーザー 」はどこからでもこのデータベースサーバーにアクセスできます。現在のDBユーザーを取得するには、次のコマンドを実装します。
MariaDB [(none)]> SELECT user();
これは現在アクティブなユーザーです。または、次のコマンドを使用することもできます:
MariaDB [(none)]> SELECT current_user();
MySQLシェルを終了し、別のユーザーとしてログインします:
MariaDB [(none)]> quit; $ mysql -u LinuxShellTips -p
複数のアクティブなデータベースユーザーを持つことができるため、それらを一覧表示するには、次のようなMySQLコマンドが必要になります。
MariaDB [(none)]> SELECT user, host, db, command FROM information_schema.processlist;
MySQLをリストする際の注意点 ユーザーアカウント情報はテーブル名です(例:ユーザー )これらのユーザーの下にあり、データベース名( mysql など) )そのテーブルを保持します。次のチュートリアルでお会いしましょう。