MariaDB:Unixソケットプラグインを使用して新しいユーザー(パスワードなし)を作成および付与する

MariaDB:Unixソケットプラグインを使用して新しいユーザー(パスワードなし)を作成および付与する

Kubuntu 15.10にMariaDBをインストールしました。オペレーティングシステムでユーザーを認証するプラグインを介してrootとしてログインできます。 (これは私にとって新しいものなので、ほとんどのチュートリアルで提案されているように、プラグイン認証を削除する代わりに学んでいます。)

これで、root以外のユーザーを作成し、そのユーザーにすべての権限を付与し、ユーザーがパスワードなしで(プラグインを使用して)mysql(localhostで)にログインできるようにしたいと思います。どうすればいいですか?それでもユーザーにパスワードを提供する必要がありますか?

答え1

答えを見つけました。必要な部分は、次のように「IDENTIFIED VIA unix_socket」です。

MariaDB [(none)]> CREATE USER serg IDENTIFIED VIA unix_socket;
MariaDB [(none)]> GRANT ALL PRIVILEGES on mydatabase.* to 'serg'@'localhost';

MariaDB [(none)]> select user, host, password, plugin from mysql.user;
+--------------+-----------+----------+-------------+
| user         | host      | password | plugin      |
+--------------+-----------+----------+-------------+
| root         | localhost |          | unix_socket |
| root         | mitra     |          | unix_socket |
| root         | 127.0.0.1 |          | unix_socket |
| root         | ::1       |          | unix_socket |
| serg         | localhost |          | unix_socket |
+--------------+-----------+----------+-------------+
5 rows in set (0.00 sec)

MariaDB [(none)]> FLUSH PRIVILEGES;

次に、シェルで次の操作を行います。

sudo service mysql restart

ユーザー「serg」としてログインするには、sudoを使用しないでください。ただ使用してくださいmysql -u serg

答え2

このユーザーにパスワードを割り当て、それをmy.cnfファイルに入力できます。

  • mydatabasにすべての権限を付与します。「パスワード」で識別されるuser@localhostに送信されます。

編集する私のcnf

[マイSQL]

ユーザー=ユーザー

パスワード=パスワード

[mysql管理]

ユーザー=ユーザー

パスワード=パスワード

sudo service mysql restart

mysql -h localhost -u user

答え3

~によると文書:

SQL_MODEがNO_AUTO_CREATE_USERを設定していない場合は、GRANTを介してユーザーアカウントを作成することもできます。たとえば、

それではこれで十分です:

GRANT SELECT ON db.* TO username@hostname IDENTIFIED VIA unix_socket;

関連情報