MariaDB: Unix 소켓 플러그인을 사용하여 새 사용자(비밀번호 없이) 생성 및 부여

MariaDB: Unix 소켓 플러그인을 사용하여 새 사용자(비밀번호 없이) 생성 및 부여

방금 Kubuntu 15.10에 MariaDB를 설치했습니다. 운영 체제에서 사용자를 인증하는 플러그인을 통해 루트로 로그인할 수 있습니다. (이것은 나에게 새로운 것이므로 대부분의 튜토리얼에서 제안하는 것처럼 플러그인 인증을 제거하는 대신 배우고 있습니다.)

이제 루트가 아닌 사용자를 생성하고 해당 사용자에게 모든 권한을 부여하고 사용자가 비밀번호 없이(플러그인을 사용하여) 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;

관련 정보