mysql에는 사용자 테이블이 있습니다. 사용자 테이블은 서버에 연결이 허용된 계정 정보를 기록하는 데 사용되는 MySQL의 권한 테이블입니다. 사용자 테이블의 필드는 대략 사용자 열, 권한 열, 보안 열 및 리소스 제어의 네 가지 범주로 나눌 수 있습니다. 열.
이 튜토리얼의 운영 환경: windows7 시스템, mysql5.7 버전, Dell G3 컴퓨터.
mysql에는 사용자 테이블이 있습니다.
사용자 테이블은 MySQL에서 가장 중요한 권한 테이블로, 서버에 접속할 수 있는 계정 정보를 기록하는 데 사용됩니다. 사용자 테이블에서 활성화된 모든 권한은 전역적이며 모든 데이터베이스에 적용된다는 점에 유의해야 합니다.
사용자 테이블의 필드는 크게 사용자 열, 권한 열, 보안 열, 리소스 제어 열의 4가지 범주로 나눌 수 있습니다. 다음은 이러한 필드의 의미를 주로 소개합니다.
사용자 열
사용자 열에는 사용자가 MySQL 데이터베이스에 연결할 때 입력해야 하는 정보가 저장됩니다. MySQL 5.7 버전에서는 더 이상 비밀번호를 비밀번호 필드로 사용하지 않고 인증_문자열로 변경했습니다.
MySQL 버전 5.7의 사용자 목록은 표 1에 나와 있습니다.
필드 이름 | 필드 유형 | 비어 있는지 | 기본값 | Description |
---|---|---|---|---|
Host | char(60) | NO | 없음 | Hostname |
User | char(32) | NO | None | Username |
authentication_string | text | YES | None | 비밀번호 |
사용자가 로그인할 때 이 세 필드가 동시에 일치하면 MySQL 데이터베이스 시스템에서 로그인을 허용합니다. 새로운 사용자를 생성할 때 이 세 필드의 값도 설정됩니다. 사용자의 비밀번호를 수정하면 실제로 사용자 테이블의 인증_문자열 필드 값이 수정됩니다. 따라서 이 3개 필드에 따라 사용자가 로그인할 수 있는지 여부가 결정됩니다.
권한 열
권한 열의 필드는 사용자의 권한을 결정하고 전역 범위의 데이터 및 데이터베이스에 허용되는 작업을 설명하는 데 사용됩니다.
권한은 크게 고급 관리 권한과 일반 권한의 두 가지 범주로 나뉩니다.
고급 관리 권한은 주로 서비스 종료 권한, 슈퍼 권한 및 사용자 로드 권한과 같이 데이터베이스를 관리합니다. 쿼리 권한, 수정 권한 등 데이터베이스를 운영합니다.
사용자 테이블의 권한 열에는 Select_priv, Insert_priv 및 priv로 끝나는 기타 필드가 포함됩니다. 이러한 필드 값의 데이터 유형은 ENUM입니다. 가능한 값은 Y 및 N입니다. Y는 사용자에게는 해당 권한이 있고 N은 사용자에게 해당 권한이 없음을 의미합니다. 보안상의 이유로 이러한 필드의 기본값은 N입니다.
필드 이름 | 필드 유형 | 비어 있는지 여부 | 기본값 | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Select_priv | enum('N','Y' ) | NO | N | SELECT 명령으로 데이터 조회가 가능한가요 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Insert_priv | enum('N','Y') | NO | N | 을 통해 데이터 삽입이 가능한가요? INSERT 명령 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Update_priv | enum('N','Y') | NO | N | UPDATE 명령을 통해 기존 데이터를 수정할 수 있나요 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Delete_priv | enum('N', 'Y') | NO | N | DELETE 명령으로 기존 데이터 삭제가 가능한가요 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Create_priv | enum('N','Y') | NO | N | 가능합니까 새 데이터베이스 및 테이블 생성 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Drop_priv | enum('N','Y') | NO | N | 기존 데이터베이스 및 테이블 삭제가 가능합니까 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Reload_priv | enum(' N','Y') | NO | N | 로그, 권한, 호스트, 쿼리 및 테이블을 포함하여 MySQL에서 사용하는 다양한 내부 캐시를 플러시하고 다시 로드하는 특정 명령을 수행할 수 있습니까? | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Shutdown_priv | enum('N','Y') | NO | N | MySQL 서버를 종료할 수 있나요? 루트 계정이 아닌 다른 사용자에게 이 권한을 부여할 때는 매우 주의해야 합니다 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Process_priv | enum('N','Y') | NO | N | SHOW를 통해 볼 수 있는지 여부 PROCESSLIST 명령 다른 사용자의 프로세스 leFile_priv | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
No | n | Select into Outfile 및 Load Data Infile 명령 | Grant_priv | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
NO | N | 외래 키 제약 조건을 생성할 수 있나요? | Index_priv | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
NO | N | 인덱스에 대한 추가 및 삭제 검사를 수행할 수 있습니까? | Alter_priv | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
NO | N | 테이블 구조를 다음과 같이 할 수 있습니까? 이름이 바뀌고 수정됨 | Show_db_priv | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
NO | N | 서버를 볼 수 있습니까? | Super_priv | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
NO | N | 사용자에게 충분한 액세스 권한이 있는 것과 같은 특정 강력한 관리 기능을 수행하는 것이 가능합니까? KILL 명령을 사용하여 사용자 프로세스를 삭제하십시오. 전역 MySQL 변수를 수정하고 복제 및 로깅에 대한 다양한 명령을 실행합니다. (슈퍼 권한) | Create_tmp_table_priv | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
NO | N | 임시 테이블 생성이 가능한가요 | Lock_tables_priv | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
NO | N | LOCK TABLES 명령을 사용하여 테이블 액세스/수정을 방지할 수 있나요 | Execute_priv | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
NO | N | 저장된 프로 시저의 | repl_slave_priv | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
no | n | can replicated 데이터베이스 환경을 유지하는 데 사용되는 이진 로그 파일을 읽으십시오. | enum( 'N','Y')NO | N | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Create_view_priv | enum('N','Y' ) | NO | N | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Show_view_priv | enum('N','Y') | NO | N | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Create_routine_priv | enum('N','Y') | NO | N | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Alter_routine_priv | enum('N','Y') | NO | N | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Create_user_priv | enum('N','Y') | NO | N | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Event_priv | enum('N','Y') | NO | N | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Trigger_priv | enum('N','Y') | NO | N | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Create_tablespace_priv | enum('N','Y') | NO | N | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
필드 이름 | 필드 유형 | 비어 있나요? | 기본값 | Description |
---|---|---|---|---|
ssl_type | enum('','ANY','X509','SPECIFIED') | NO | 지원되는 SSL 표준 암호화 보안 필드 | |
ssl_cipher | blob | NO | SSL 표준 암호화 보안 필드 지원 | |
x509_issuer | blob | NO | x509 표준 지원 fields | |
x509_subject | blob | NO | x509 표준 필드 지원 | |
plugin | char(64) | NO | mysq 비밀번호 | 사용자가 연결할 때 비밀번호 확인을 위한 플러그인 도입, 플러그인 외부/프록시 사용자 생성 |
password_expired | enum('N','Y') | NO | N | 비밀번호가 만료되었나요(N은 만료되지 않았으며 y는 만료되었습니다) |
password_last_changed | timestamp | YES | 비밀번호가 마지막으로 수정된 시간을 기록하세요 | |
password_lifetime | smallint(5) unsigned | YES | 비밀번호 유효 시간을 일 단위로 설정하세요 | |
계정이 잠겼습니다 | enum('N','Y') | NO | N | 사용자가 잠겨 있는지 여부(Y 잠금, N 잠금 해제) |
참고: 비밀번호 만료가 "Y"인 경우에도 사용자는 다음을 수행할 수 있습니다. 또한 비밀번호를 사용하여 MySQL에 로그인할 수 있지만 어떤 작업도 허용되지 않습니다.
일반적으로 표준 배포판은 SSL을 지원하지 않습니다. 독자는 SHOW VARIABLES LIKE "have_openssl" 문을 사용하여 SSL 기능이 있는지 확인할 수 있습니다. have_openssl 값이 DISABLED이면 SSL 암호화 기능이 지원되지 않습니다.
리소스 제어 열
리소스 제어 열의 필드는 사용자가 사용하는 리소스를 제한하는 데 사용됩니다. 사용자 테이블의 리소스 제어 열은 표 4에 나와 있습니다.
필드 이름 | 필드 유형 | 비어 있는지 여부 | Default | Description |
---|---|---|---|---|
max_questions | int(11) 서명되지 않음 | NO | 0 | 시간당 허용되는 쿼리 작업 수를 지정합니다. |
max_updates | int(11) unsigned | NO | 0 | 시간당 허용되는 업데이트 작업 수를 지정합니다. |
max_connect 이온 | int (11) unsigned | NO | 0 | 시간당 수행할 수 있는 연결 작업 수를 지정합니다 |
max_user_connections | int(11) unsigned | NO | 0 | 연결 수를 지정합니다. 동시에 설정 가능 |
위 필드의 기본값은 0으로, 이는 제한이 없음을 의미합니다. 사용자 쿼리 또는 연결 수가 한 시간 내에 리소스 제어 제한을 초과하면 사용자가 잠기고 다음 시간까지 여기에서 해당 작업을 수행할 수 없습니다. 이 필드의 값은 GRANT 문을 사용하여 업데이트할 수 있습니다.
【관련 추천: mysql 비디오 튜토리얼】
위 내용은 mysql에는 사용자 테이블이 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!