linuxBean14.04(68)mysql_config_editorで認証情報を難読化

ラベル: ,

前の関連記事:linuxBean14.04(67)サンプルデータベースsakila databaseのインストール


mysql_config_editorでmysql-serverへの認証情報を難読化してファイルに保存できます。4.6.6 mysql_config_editor — MySQL 構成ユーティリティーにはMySQL 5.6.6(5.6の誤植?)で使用可能と書いてありますがMySQL 5.6.26でも使えました。

mysql_config_editorでログイン情報を保存する


mysql_config_editor set --login-path=local --host=localhost --user=User01 --password

このコマンドでログインパス名をlocalと命名し、localhostにユーザー名User01でログインする情報を設定します。

パスワードはこのコマンドを実行すると入力を促されるのでそこで入力します。

mysql_config_editor print --all

設定したログイン方法はこのコマンドで確認できます。
pq@pq-VirtualBox:~$ mysql_config_editor set --login-path=local --host=localhost --user=User01 --password
Enter password: 
pq@pq-VirtualBox:~$ mysql_config_editor print --all
[local]
user = User01
password = *****
host = localhost
パスワードは表示されません。

これらの情報は~/.mylogin.cnfファイルに保存されていますがバイナリファイルになっています。

.mylogin.cnfファイルは暗号化されているものの鍵も一緒に埋め込まれているため、セキュアそうでセキュアじゃない少しセキュアな気分になれるmysql_config_editorによると簡単に解読できるので、公開しないほうがよいそうです。

mysql_config_editor remove --login-path=local

これでログインパスlocalが削除されます。

個別の項目を削除したいときはログインパス名に続いて削除したい項目を指定します。

--userでユーザー、--passwordでパスワード、--host でホスト、が指定できます。
pq@pq-VirtualBox:~$ mysql_config_editor remove --login-path=local --user
pq@pq-VirtualBox:~$ mysql_config_editor print --all
[local]
password = *****
host = localhost
--userでログインパスからユーザー名の項目が削除されているのがわかります。
mysql_config_editor set --login-path=local --user=User01

これで指定した項目のみ追記できるのかと思いましたがログインパスの内容すべての書き換えしかできませんでした。
pq@pq-VirtualBox:~$ mysql_config_editor remove --login-path=local --user
pq@pq-VirtualBox:~$ mysql_config_editor print --all
[local]
password = *****
host = localhost
pq@pq-VirtualBox:~$ mysql_config_editor set --login-path=local --user=User01WARNING : 'local' path already exists and will be overwritten. 
 Continue? (Press y|Y for Yes, any other key for No) : y
pq@pq-VirtualBox:~$ mysql_config_editor print --all
[local]
user = User01

ログインパスを使ってmysqlにログインする


mysql_config_editorでログインパスを設定するとログインパス名を使ってログインできるようになります。

mysql --login-path=local
ログインパスをオプションで指定するだけでログインできます。
pq@pq-VirtualBox:~$ mysql --login-path=local
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 52
Server version: 5.6.26 MySQL Community Server (GPL)

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

MySQL Utilities 1.5.5のログインにはログインパスは使えず


MySQL Utilities 1.5.5はlinuxBean14.04(64)MySQL Utilities1.5.5とConnector/Python2.0.4のインストールでインストールしたものです。

Pythonで作られた便利なコマンドラインツール MySQL Utilities | Think IT(シンクイット)

MySQL Utilitiesの解説はこのページがわかりやすいです。

MySQL Utilitiesのコマンドに続けて--server=ユーザー名:パスワード@localhost:3306というオプションでMySQLサーバに接続します。
pq@pq-VirtualBox:~$ mysqldiskusage --server=User01:パスワード@localhost:3306
WARNING: Using a password on the command line interface can be insecure.
# Source on localhost: ... connected.

WARNING: Your user account does not have read access to the datadir. Data sizes will be calculated and actual file sizes may be omitted. Some features may be unavailable.

# Database totals:
+---------------------+--------------+
| db_name             |       total  |
+---------------------+--------------+
| employees           | 204,931,072  |
| mysql               | 939,782      |
| performance_schema  | 0            |
| sakila              | 6,830,912    |
+---------------------+--------------+

Total database disk usage = 212,701,766 bytes or 202.85 MB

#...done.
mysqldiskusageではこのように各スキーマのディスク消費量がわかります。

「パスワード」の部分は平文で丸見えです。

そこで--login-path=localで接続できないかと期待しましたが期待はずれでした。

--login-pathオプションはないというエラーが返ってきます。

参考にしたサイト


MySQL :: MySQL 5.6 リファレンスマニュアル :: 4.6.6 mysql_config_editor — MySQL 構成ユーティリティー
mysql_config_editor の解説。

セキュアそうでセキュアじゃない少しセキュアな気分になれるmysql_config_editor
.mylogin.cnfファイルのパスワードは簡単に解読できるそうです。

MySQL :: MySQL Utilities
MySQL Utilitiesの公式マニュアル。

Pythonで作られた便利なコマンドラインツール MySQL Utilities | Think IT(シンクイット)
MySQL Utilitiesのわかりやすい解説。

次の関連記事:linuxBean14.04(69)MySQL5.6にPython3.3から接続する

PR

0 件のコメント:

コメントを投稿