mysql 安裝密碼校驗插件validate_password

在使用服務器插件之前,必須將它們加載到服務器中。MySQL支持在服務器啓動和運行時加載插件。還可以在啓動時控制加載插件的激活狀態,並在運行時卸載它們。在加載插件時,可以從INFORMATION_SCHEMA獲得關於插件的信息。

#查看當前mysql安裝的插件信息

mysql> show plugins;
+-----------------------------+----------+--------------------+---------+---------+
| Name                        | Status   | Type               | Library | License |
+-----------------------------+----------+--------------------+---------+---------+
| binlog                      | ACTIVE   | STORAGE ENGINE     | NULL    | GPL     |
| mysql_native_password       | ACTIVE   | AUTHENTICATION     | NULL    | GPL     |
| mysql_old_password          | ACTIVE   | AUTHENTICATION     | NULL    | GPL     |
| sha256_password             | ACTIVE   | AUTHENTICATION     | NULL    | GPL     |
| MyISAM                      | ACTIVE   | STORAGE ENGINE     | NULL    | GPL     |
| MRG_MYISAM                  | ACTIVE   | STORAGE ENGINE     | NULL    | GPL     |
| MEMORY                      | ACTIVE   | STORAGE ENGINE     | NULL    | GPL     |
| CSV                         | ACTIVE   | STORAGE ENGINE     | NULL    | GPL     |
| BLACKHOLE                   | ACTIVE   | STORAGE ENGINE     | NULL    | GPL     |
| ARCHIVE                     | ACTIVE   | STORAGE ENGINE     | NULL    | GPL     |
| FEDERATED                   | DISABLED | STORAGE ENGINE     | NULL    | GPL     |
| InnoDB                      | ACTIVE   | STORAGE ENGINE     | NULL    | GPL     |
| XTRADB_READ_VIEW            | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| XTRADB_INTERNAL_HASH_TABLES | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| XTRADB_RSEG                 | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_TRX                  | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_LOCKS                | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_LOCK_WAITS           | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_CMP                  | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_CMP_RESET            | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_CMPMEM               | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_CMPMEM_RESET         | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_CMP_PER_INDEX        | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_CMP_PER_INDEX_RESET  | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_BUFFER_PAGE          | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_BUFFER_PAGE_LRU      | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_BUFFER_POOL_STATS    | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_METRICS              | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_FT_DEFAULT_STOPWORD  | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_FT_DELETED           | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_FT_BEING_DELETED     | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_FT_CONFIG            | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_FT_INDEX_CACHE       | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_FT_INDEX_TABLE       | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_SYS_TABLES           | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_SYS_TABLESTATS       | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_SYS_INDEXES          | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_SYS_COLUMNS          | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_SYS_FIELDS           | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_SYS_FOREIGN          | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_SYS_FOREIGN_COLS     | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_SYS_TABLESPACES      | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_SYS_DATAFILES        | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| INNODB_CHANGED_PAGES        | ACTIVE   | INFORMATION SCHEMA | NULL    | GPL     |
| PERFORMANCE_SCHEMA          | ACTIVE   | STORAGE ENGINE     | NULL    | GPL     |
| partition                   | ACTIVE   | STORAGE ENGINE     | NULL    | GPL     |
+-----------------------------+----------+--------------------+---------+---------+
46 rows in set (0.00 sec)

#要使服務器可用,插件庫文件必須位於MySQL插件目錄中(由plugin_dir系統變量命名的目錄)。如果需要,通過在服務器啓動時設置plugin_dir的值來配置插件目錄位置。

mysql>  show variables like 'plugin_dir';
+---------------+--------------------------------------+
| Variable_name | Value                                |
+---------------+--------------------------------------+
| plugin_dir    | /data/server/mysql/lib/mysql/plugin/ |
+---------------+--------------------------------------+
1 row in set (0.00 sec)

#插件庫的文件名是validate_password.文件名後綴根據平臺的不同而不同(例如,對於Unix和類Unix系統,.dll對於Windows)。要在服務器啓動時加載插件,可以使用--plugin-load-add選項來命名包含它的庫文件。使用這種插件加載方法,必須在每次服務器啓動時提供該選項。例如,將這些行放到服務器my.cnf文件中(根據需要調整平臺的.so後綴):

[mysqld]
plugin-load-add=validate_password.so
#服務器在啓動時加載插件,並防止在服務器運行時刪除插件。
validate-password=FORCE_PLUS_PERMANENT

#修改my.cnf之後,重啓服務器以使新設置生效。或者,要在運行時註冊插件,可以使用以下語句(根據需要調整.so後綴):

mysql> INSTALL PLUGIN validate_password SONAME 'validate_password.so';

#查看所有插件

mysql> show plugins;

| validate_password           | ACTIVE   | VALIDATE PASSWORD  | validate_password.so | GPL     |
+-----------------------------+----------+--------------------+----------------------+---------+
47 rows in set (0.00 sec)

mysql> show variables like 'validate_password%';
+--------------------------------------+--------+
| Variable_name                        | Value  |
+--------------------------------------+--------+
| validate_password_dictionary_file    |        |
| validate_password_length             | 8      |
| validate_password_mixed_case_count   | 1      |
| validate_password_number_count       | 1      |
| validate_password_policy             | MEDIUM |
| validate_password_special_char_count | 1      |
+--------------------------------------+--------+
6 rows in set (0.00 sec)

validate_password_check_user_name   :設置爲ON的時候表示能將密碼設置成當前用戶名。

validate_password_dictionary_file         :validate_password用於檢查密碼的字典文件的路徑名。

validate_password_length                    :validate_password所需密碼的最小字符數。

validate_password_mixed_case_count  :如果密碼策略是中等或更強的,validate_password要求密碼具有的小寫和大寫字符的最小數量。對於給定的這個值密碼必須有那麼多小寫字符和那麼多大寫字符。

validate_password_number_count         :如果密碼策略是中等或更強的,validate_password要求密碼具有的數字(數字)字符的最小數量。

validate_password_policy                    : validate_password強制執行的密碼策略,validate_password_policy影響validate_password如何使用它的其他策略設置系統變量,除了根據用戶名檢查密碼之外,後者由validate_password_check_user_name獨立控制。

validate_password_policy值可以使用數值0、1、2或相應的符號值LOW、MEDIUM、STRONG來指定。下表描述了爲每個策略執行的測試。對於長度測試,所需的長度是validate_password_length系統變量的值。類似地,其他測試所需的值由其他validate_password_xxx變量提供。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章