mysql 비밀번호 유효성 검사를 끄려면 어떻게합니까?


153

MySQL 5.7에서 암호 유효성 검사 플러그인을 실수로로드 한 것 같습니다. 이 플러그인은 모든 비밀번호가 특정 규칙을 준수하도록 강제하는 것 같습니다.

이 기능을 끄고 싶습니다.

여기 에 제안 된대로 validate_password_length 변수를 변경하려고 시도했습니다 .

mysql> SET GLOBAL validate_password_length=4;
Query OK, 0 rows affected (0.00 sec)

mysql> SET PASSWORD FOR 'app' = PASSWORD('abcd');
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

플러그인을 언로드하거나 어떻게 든 중립화하고 싶습니다.


9
정책 설정을 변경해 보셨습니까? SET GLOBAL validate_password_policy=LOW;
Rikki

1
SET GLOBAL validate_password.policy=LOW;
belgacea

답변:


430

다음은 validate password 플러그인을 제거하는 방법입니다.

  1. 루트로 mysql 서버에 로그인 mysql -h localhost -u root -p
  2. 다음 sql 명령을 실행하십시오. uninstall plugin validate_password;
  3. 마지막 줄이 작동하지 않으면 (새로운 mysql 릴리스) 실행해야합니다 UNINSTALL COMPONENT 'file://component_validate_password';

프로덕션 시스템에는이 솔루션을 권장하지 않습니다. 개발 목적으로 만 로컬 mysql 인스턴스에서이 솔루션을 사용했습니다.


18
다시 활성화하려면 다음 명령을 사용하십시오. INSTALL PLUGIN validate_password SONAME 'validate_password.so';
vchrizz

8
플러그인을 제거하려면 적어도 한 번을 통해 보안 암호를 설정해야합니다 grep 'password' /var/log/mysqld.log | tail -1다음 /usr/bin/mysql_secure_installation. 그런 다음 위의 srayhunter에서 명령을 실행 한 다음 mysqladmin -u root -p'oldpassword' password newpass원하는 암호를 사용하여 실행할 수 있습니다.
specialk1st

2
플러그인은 cracklib_password_check현재 MariaDB에서 호출 됩니다.
czerny

27
참고 : MySQL 8.0.4에서는 validate_password 플러그인이 validate_password 컴포넌트로 다시 구현되었습니다. 위의 # 2 쿼리 대신 다음을 실행하십시오.UNINSTALL COMPONENT 'file://component_validate_password';
Aaron Cicali

4
mysql> SET GLOBAL validate_password_policy = 0;
JREAM

41

MySQL v 8.0.12를 사용 하고 있으며 암호 유효성 검사 구성 요소 를 비활성화 하는 명령 은 다음과 같습니다.

UNINSTALL COMPONENT 'file://component_validate_password';

다시 설치하려면 명령은 다음과 같습니다.

INSTALL COMPONENT 'file://component_validate_password';

비밀번호 확인 플러그인 정책 을 변경 하려는 경우 :

SET GLOBAL validate_password.policy = 0;   // For LOW
SET GLOBAL validate_password.policy = 1;   // For MEDIUM
SET GLOBAL validate_password.policy = 2;   // For HIGH

34

Sharfi의 답변을 바탕으로 /etc/my.cnf 파일을 편집하고 다음 한 줄만 추가하십시오.

validate_password_policy=LOW

OP의 요청에 따라 유효성 검사를 충분히 중성화해야합니다. 이 변경 후에 mysqld를 다시 시작하고 싶을 것이다. OS에 따라 다음과 같이 보일 것입니다.

sudo service mysqld restart

validate_password_policy는 값 0, 1 또는 2 또는 해당 숫자에 해당하는 단어 LOW, MEDIUM 및 STRONG을 사용합니다. 기본값은 MEDIUM (1)이며, 암호에는 적어도 하나의 대문자, 소문자, 숫자 및 특수 문자가 포함되어야하며 총 암호 길이는 8 자 이상이어야합니다. 여기서 제안한대로 LOW로 변경하면 길이 만 검사합니다. 다른 매개 변수를 통해 변경되지 않은 경우 길이는 8로 검사됩니다. 길이 제한을 짧게하려면 validate_password_length를 my.cnf 파일

레벨 및 세부 사항에 대한 자세한 정보 는 mysql doc을 참조하십시오 .


MySQL 8의 경우 속성이 "validate_password_policy"에서 "validate_password.policy"로 변경되었습니다. 최신 정보 는 업데이트 된 mysql 문서 를 참조하십시오 .


6
임시 변경 만 필요한 경우 단일 암호를 설정하려면SET GLOBAL validate_password_policy=LOW;
Rikki

1
이것은 모듈 자체를 제거하는 것보다 더 나은 솔루션입니다.
Mrugesh Mistry

2
MySQL은 : 알 수없는 변수 'validate_password_policy = LOW'
Amalgovinus

2
최신 MySQL에서 변수 이름이 변경된 것 같습니다. @Amalgovinus, 대신 변수 이름 "validate_password.policy"를 사용 해보고 그것이 효과가 있는지 확인하십시오. 그리고 그렇다면 답변을 업데이트하겠습니다.
ktbos

6

mariadb-10.1.24 (Fedora 24)에서 비밀번호 확인을 비활성화하려면 /etc/my.cnf.d/cracklib_password_check.cnf 파일 에서 줄을 주석 처리해야했습니다 .

;plugin-load-add=cracklib_password_check.so

그런 다음 mariadb 서비스를 다시 시작하십시오.

systemctl restart mariadb.service

4

mysql 구성 파일에서 파일을 구성 할 수 있습니다. 파일 열기이 /etc/my.cnf파일에서 비밀번호 정책을 구성하는 모든 행은 다음과 같이 주석 처리됩니다.

#validate-password=FORCE_PLUS_PERMANENT
#validate_password_length=10
#validate_password_mixed_case_count=1
#validate_password_number_count=1
#validate_password_policy=MEDIUM

주석을 변경하고 변경하려는 특성 값을 변경하십시오.


2

예외를 만들고 싶다면 다음 "해킹"을 적용하면됩니다. 그것은을 가진 사용자 요구 DELETEINSERT에 대한 권한 mysql.plugin시스템 테이블을.

uninstall plugin validate_password;
SET PASSWORD FOR 'app' = PASSWORD('abcd');
INSTALL PLUGIN validate_password SONAME 'validate_password.so';

Bland 보안 면책 조항 : 암호를 더 짧게 또는 더 쉽게 만드는 이유를 고려하고 더 복잡한 암호로 바꾸는 것을 고려하십시오. 그러나 나는 "3AM이고 작동해야한다"는 순간을 이해하고 있으며, 해킹 시스템을 구축하지 않도록주의하십시오.


2

ktbos의 답변 외에도

mysqld.cnf 파일을 수정했는데 mysql을 시작하지 못했습니다. 잘못된 파일을 수정하고있는 것으로 나타났습니다!

따라서 수정 한 파일에 [mysqld_safe] 및 [mysqld]와 같은 세그먼트 태그가 포함되어 있는지 확인하십시오. 후자에서 나는 제안대로 행을 추가했다.

validate_password_policy=LOW

이것은 암호 내에 특수 문자가 필요하지 않은 문제를 해결하기 위해 완벽하게 작동했습니다.


1

제거:

mysql> uninstall plugin validate_password;

제거 된 플러그인은 show plugins;

설치:

mysql> install plugin validate_password SONAME 'validate_password.so';

구성에 의해 비활성화 됨 :

[mysqld]
validate_password = OFF

플러그인은 설치되어있는 경우에만 구성으로 비활성화 할 수 있습니다.


0

Mysql의 Ubuntu 18.04에서 문제가 발생했습니다. 새 사용자를 만들어야 할 때는 항상 정책이 높았습니다.

조사 할 미래의 동료를 위해 비활성화하는 방법을 알아 낸 방법은 낮게 설정되었습니다.

루트로 mysql 서버에 로그인

mysql -h localhost -u root -p

새로운 유형의 유효성 검사 설정

SET GLOBAL validate_password_policy=0; //For Low

MySQL을 다시 시작

sudo service mysql restart

1
이 "SET ..."명령을 mysql 쉘에 작성해야합니다. 쉘을 강타하지 마십시오.
kodmanyagha

0

일부 설치에서는 루트 비밀번호를 재설정 할 때까지이 명령을 실행할 수 없습니다. 이 명령을 실행할 때까지 루트 비밀번호를 재설정 할 수 없습니다. 클래식 캐치 -22.

다른 응답자가 언급하지 않은 한 가지 해결책은 mysql 구성을 통해 플러그인을 일시적으로 비활성화하는 것입니다. 어떤에서 my.cnf의에 [mysqld]섹션 추가 :

skip-validate_password=1

서버를 다시 시작하십시오. 비밀번호를 변경하고 값을 다시 0으로 설정 한 후 다시 시작하십시오.


이 작동하지 않습니다. 이것이 적용되는 MySQL 버전을 언급 할 수 있습니까?
Dave Doga Oz

0

참조와 미래에 대해서는 다음 문서를 읽으십시오 https://dev.mysql.com/doc/mysql-secure-deployment-guide/5.7/en/secure-deployment-password-validation.html

그런 다음 mysqld.cnf파일을 편집해야 합니다 (예 :

vim /etc/mysql/mysql.conf.d/mysqld.cnf

그런 다음 [mysqld] 부분에 다음을 추가하십시오.

plugin-load-add=validate_password.so
validate_password_policy=LOW

기본적으로 기본값을 편집하면 다음과 같이 표시됩니다.

[mysqld]
#
# * Basic Settings
#
user            = mysql
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
port            = 3306
basedir         = /usr
datadir         = /var/lib/mysql
tmpdir          = /tmp
lc-messages-dir = /usr/share/mysql
skip-external-locking
plugin-load-add=validate_password.so
validate_password_policy=LOW

그런 다음 다시 시작할 수 있습니다.

systemctl restart mysql

plugin-load-add=validate_password.so부품 을 잊어 버린 경우 다시 시작할 때 오류가 발생합니다.

즐겨 !


-1

mysql 8.0.7의 경우 mysql 디렉토리로 이동 한 후 다음을 사용하십시오.

sudo bin/mysql_secure_installation

비밀번호 옵션을 구성합니다.


-2
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'organizer'@'localhost'  WITH GRANT OPTION;

CREATE USER 'username'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'organizer'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

mysql을 중지 / 시작할 필요가 없습니다

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.