Arxiv

Posts Tagged ‘MySQL 5.6.10 yeniliklər’

MySQL 5.6.10 yeniliklər-mysql_config_editor

Terminaldan root və yaxud da digər user-lə connect olmaq lazım olur…Lakin hər dəfə root password yazmağa əringənlik yaranır, password yazarkən zillənən gözlər narahat edir və.s 😉
Ən əsası da təhlükəsizlik cəhətdən hər dəfə əllə password yazarkən process-ləri oxuya bilən birisi çox asandca sizin password-ü götürə bilər.
MySQL 5.6.6-dan etibarən mysql_config_editor utility təklif olunur. Bu utility bizə imkan verir ki authentication credential-ları encprypt olunmuş mylogin.cnf faylında saxlayaq…
Çox sadə istifadəsi var:

[root@localhost ~]# mysql_config_editor set --login-path=local  --host=localhost --user=root --password
Enter password: 
WARNING : 'local' path already exists and will be overwritten. 
 Continue? (Press y|Y for Yes, any other key for No) : y

Əgər remote connect oluruqsa, –login-path=remote qeyd edirik.

Daha sonra qoşulmaq istədikdə sadəcə yazırıq:

[root@localhost ~]# mysql --login-path=local
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.6.10-log MySQL Community Server (GPL)

Hə sual ola bilər ki, parolu filan hər hansı fayla yazmaq düzgündür mü? Təbii ki buna dəhşətli şüphəli yanaşmaq da olar.
Amma ən azından faylı oxuduqda belə heç bir password görsənmir:

[root@localhost ~]# mysql_config_editor print --all
[local]
user = root
password = *****
host = localhost

Hələ geniş istifadə olunmayıb məhz bu səbəbdən google-da bu utility-yə qarşı dəhşətli bir gedişata rast gəlmədim 😉
Təşəkkürlər 😉

MySQL 5.6.10 yeniliklər-sha256_password,validate_password plugins

MySQL 5.6.6-dan etibarən “SHA-256 password hashing” parollar üçün daha secure encrypting support-u əlavə olunmuşdur.
Plugin şəklində gələn bu support sadə şəkildə aktiv olunur. Onu da qeyd etmək lazımdır ki , built-in plugin olduğu heç bir install və yaxud path göstərmək lazım deyil.
SHA-256 Authentication Plugin

Plugin-i aktiv etmək üçün my.cnf faylında
[mysqld] kataloqunun altında:

default-authentication-plugin=sha256_password

Yazmaq kifayətdir. MySQL restart etdikdən sonra adi qaydada hər hanıs bir user yaradaq:

mysql> create user 'donuzcuq'@'localhost' identified by '12345';
Query OK, 0 rows affected (0.09 sec)

və connect olmağa çalışaq:

[sh@localhost ~]$ mysql -u donuzcuq -p
Enter password: 
ERROR 2061 (HY000): Authentication plugin 'sha256_password' reported error: Authentication requires SSL encryption

Bunu mən bir bug kimi artıq report etmişəm. Report səbəbim isə çox sadədir: mən hansı əsasa görə məcburən SSL istifadə etməliyəm? Həm də bu məcburiyyət haqqında dokumentasiyada heç bir şey bildirilməyib.
Bəli çox təəssüf ki bu plugin-dən istifadə edə bilmədik keçirik digərinə 😉

validate_password
plugini MySQL 5.6.6-dan etibarən təklif olunur. bu plugin yeni user yaradarkən düzgün parolun qoyulub qoyulmadığını müəyyən edir. Daha doğrusu plugin aktiv olunduqdan sonra məcburən secure parol fikirləşməli olacıq.

Plugin-dən istifadə etmək üçün yenə my.cnf faylına:

[mysqld]
plugin-load=validate_password.so
validate-password=FORCE_PLUS_PERMANENT

Əlavə edirik və MySQL restart.
Dokumentasiya bildirir ki, Daha sonra root olaraq qoşuluruq və:

INSTALL PLUGIN validate_password SONAME 'validate_password.so';
ERROR 1125 (HY000): Function 'validate_password' already exists

Lakin son anda ortaya çıxır ki dokumentasiya səhv deyir. Error-dan da göründüyü kimi yuxarıdakı prosedur kifayət edir.
Və indi parolu 12345 olan bir user yaratmağa çalışaq:

mysql> create user 'donuzcuq'@'localhost' identified by '12345';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

Və hətta siz plugin-nin vasitəsilə qoymaq istədiyiniz password-u da yoxlaya bilərsiniz:

mysql> select VALIDATE_PASSWORD_STRENGTH('abc');
+-----------------------------------+
| VALIDATE_PASSWORD_STRENGTH('abc') |
+-----------------------------------+
|                                 0 |
+-----------------------------------+
1 row in set (0.00 sec)


mysql> select VALIDATE_PASSWORD_STRENGTH('12345');
+-------------------------------------+
| VALIDATE_PASSWORD_STRENGTH('12345') |
+-------------------------------------+
|                                  25 |
+-------------------------------------+
1 row in set (0.00 sec)

mysql> select VALIDATE_PASSWORD_STRENGTH('donuzcuq54');
+------------------------------------------+
| VALIDATE_PASSWORD_STRENGTH('donuzcuq54') |
+------------------------------------------+
|                                       50 |
+------------------------------------------+


mysql> select VALIDATE_PASSWORD_STRENGTH('Donuzcuq545&');
+--------------------------------------------+
| VALIDATE_PASSWORD_STRENGTH('Donuzcuq545&') |
+--------------------------------------------+
|                                        100 |
+--------------------------------------------+
1 row in set (0.00 sec)

Bu plugin mənim şəxsən çox xoşuma gəldi…
Təşəkkürlər 😉