>  기사  >  데이터 베이스  >  mysql의 비밀번호는 어디에 있나요?

mysql의 비밀번호는 어디에 있나요?

青灯夜游
青灯夜游원래의
2022-06-27 16:39:098657검색

mysql의 비밀번호는 사용자 권한 테이블의 authenticate_string 필드에 있습니다. 사용자 테이블은 MySQL에서 가장 중요한 권한 테이블로, 서버에 접속이 허용된 계정 정보를 기록하는 데 사용됩니다. 사용자 비밀번호를 수정하면 실제로 사용자 테이블의 인증_문자열 필드 값이 수정됩니다. "SET PASSWORD FOR 'username'@' 호스트 이름'=PASSWORD ('새 비밀번호')"입니다.

mysql의 비밀번호는 어디에 있나요?

이 튜토리얼의 운영 환경: windows7 시스템, mysql8 버전, Dell G3 컴퓨터.

mysql의 비밀번호는 사용자 권한 테이블의 authenticate_string 필드에 있습니다.

MySQL 사용자 권한 테이블의 사용자 열

MySQL은 설치 중에 mysql이라는 데이터베이스를 자동으로 생성합니다. 사용자가 로그인하면 MySQL은 이러한 권한 테이블의 내용을 기반으로 각 사용자에게 해당 권한을 부여합니다.

사용자 테이블은 MySQL에서 가장 중요한 권한 테이블로, 서버에 접속할 수 있는 계정 정보를 기록하는 데 사용됩니다. 사용자 테이블에서 활성화된 모든 권한은 전역적이며 모든 데이터베이스에 적용된다는 점에 유의해야 합니다.

mysql의 비밀번호는 어디에 있나요?

사용자 테이블의 필드는 대략 사용자 열, 권한 열, 보안 열 및 리소스 제어 열의 4가지 범주로 나눌 수 있습니다.

user 열에는 사용자가 MySQL 데이터베이스에 연결할 때 입력해야 하는 정보가 저장됩니다.

MySQL 5.7 버전에서는 더 이상 비밀번호를 비밀번호 필드로 사용하지 않고 인증_문자열로 변경했습니다.

MySQL 사용자 목록은 표 1에 나와 있습니다.

표 1: 사용자 테이블의 사용자 열
필드 이름 필드 유형 비어 있는지 기본값 Description
Host char(60) NO 없음 Hostname
User char(32) NO None Username
authentication_string text YES None Password

사용자가 로그인할 때, 이 세 필드가 동시에 일치하면 MySQL 데이터베이스 시스템에서 로그인을 허용합니다. 새로운 사용자를 생성할 때 이 세 필드의 값도 설정됩니다. 사용자 비밀번호를 변경하면 실제로 사용자 테이블의 인증_문자열 필드 값이 변경됩니다. 따라서 이 3개 필드에 따라 사용자의 로그인 가능 여부가 결정됩니다.

일반 사용자의 비밀번호를 변경하려면 SET 문을 사용하세요.

MySQL에서는 루트 사용자만 MySQL 데이터베이스를 업데이트하여 비밀번호를 변경할 수 있습니다. MySQL 서버에 루트 사용자로 로그인한 후 SET 문을 사용하여 일반 사용자 비밀번호를 수정할 수 있습니다. 구문 형식은 다음과 같습니다.

SET PASSWORD FOR 'username'@'hostname' = PASSWORD ('newpwd');

이 중 username 매개변수는 일반 사용자의 사용자 이름, 호스트 이름 매개변수는 일반 사용자의 호스트 이름, newpwd는 변경할 새 비밀번호입니다.

참고: 새 비밀번호는 PASSWORD() 함수를 사용하여 암호화해야 합니다. PASSWORD()를 사용하여 암호화하지 않으면 성공적으로 실행되지만 사용자는 로그인할 수 없습니다.

일반 사용자가 비밀번호를 변경하는 경우 FOR 절을 생략하여 비밀번호를 변경할 수 있습니다. 구문 형식은 다음과 같습니다.

SET PASSWORD = PASSWORD('newpwd');

예제 1

먼저 비밀번호 없이 testuser 사용자를 생성합니다. SQL 문 및 실행 결과는 다음과 같습니다.

mysql> CREATE USER 'testuser'@'localhost';
Query OK, 0 rows affected (0.14 sec)

루트 사용자가 MySQL 서버에 로그인한 후 다음을 사용합니다. testuser 사용자의 비밀번호를 "newpwd"로 변경하기 위한 SET 문, SQL 문 및 실행 결과는 다음과 같습니다.

mysql> SET PASSWORD FOR 'testuser'@'localhost' = PASSWORD("newpwd");
Query OK, 0 rows affected, 1 warning (0.01 sec)

실행 결과를 보면 SET 문이 성공적으로 실행되었음을 알 수 있으며, testuser 사용자가 "newpwd"로 설정되었습니다.

testuser 사용자의 비밀번호가 성공적으로 수정되었는지 확인하는 방법은 다음과 같습니다. MySQL 서버를 종료하고 testuser 사용자로 로그인한 후 비밀번호 "newpwd"를 입력합니다. SQL 문 및 실행 결과는 다음과 같습니다.

C:\Users\leovo>mysql -utestuser -p
Enter password: ******
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 15
Server version: 5.7.29-log MySQL Community Server (GPL)
 
Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
 
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
 
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

실행 결과에서 볼 수 있듯이 testuser 사용자가 성공적으로 로그인하여 변경되었습니다. 비밀번호가 성공적으로 입력되었습니다.

예제 2

testuser 사용자를 이용해 MySQL 서버에 로그인한 뒤, SET 문을 이용해 비밀번호를 "newpwd1"로 변경한 SQL 문과 실행 결과는 다음과 같습니다.

mysql> SET PASSWORD = PASSWORD('newpwd1');
Query OK, 0 rows affected, 1 warning (0.00 sec)

As can 실행 결과를 보면 비밀번호 변경이 성공한 것입니다.

【관련 추천: mysql 비디오 튜토리얼

위 내용은 mysql의 비밀번호는 어디에 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.