May 6, 2023

mysql.user 테이블

mysql.user 테이블

이 mysql.user표에는 MariaDB 서버에 대한 액세스 권한이있는 사용자 및 전역 권한에 대한 정보가 들어 있습니다. 테이블을 쿼리 할 수는 있지만 직접 업데이트 할 수는 있지만 사용자 및 권한을 추가 하기 위해 GRANT 및 CREATE USER 를 사용하는 것이 가장 좋습니다 .

MariaDB 권한은 여러 수준에서 발생합니다. 사용자는 create사용자 수준에서 권한을 부여받지 못할 수도 있지만 create예를 들어 특정 테이블이나 데이터베이스에 대한 권한을 여전히 가질 수 있습니다 . MariaDB 권한 시스템에 대한보다 완전한 뷰는 권한 을 참조하십시오 .

에서 MariaDB 10.4.1 의 mysql.global_priv 테이블을 교체했다 mysql.user테이블을, 그리고 mysql.user지금이다 보기 .

이 mysql.user테이블에는 다음 필드가 들어 있습니다.

Field Type NULL Key Default Description introduced
Host char(60) NO PRI   호스트 (와 User함께이 계정의 고유 식별자를 구성합니다.  
User char(80) NO PRI   사용자 ( Host이 계정의 고유 식별자를 구성 함).  
Password longtext(> =MariaDB 10.4.1), char(41)(<=MariaDB 10.4.0) NO     PASSWORD () 함수에 의해 생성 된 해시 된 암호 입니다.  
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 CREATE DATABASE 또는 CREATE TABLE을 작성할 수 있습니다.  
Drop_priv enum('N','Y') NO   N DROP DATABASE 또는 DROP TABLE을 삭제할 수 있습니다.  
Reload_priv enum('N','Y') NO   N FLUSH 문 또는 동등한 mysqladmin 명령을 실행할 수 있습니다.  
Shutdown_priv enum('N','Y') NO   N SHUTDOWN 또는 mysqladmin shutdown을 사용하여 서버를 종료 할 수있습니다.  
Process_priv enum('N','Y') NO   N SHOW PROCESSLIST 또는mysqladmin processlist 를 통해 활성 프로세스에 대한 정보를 표시 할 수 있습니다.  
File_priv enum('N','Y') NO   N LOAD DATA INFILE 과 같은 명령문을 사용 하거나 LOAD_FILE () 과 같은 함수를사용하여 서버에서 파일을 읽고 씁니다 .또한 CONNECT 외부 테이블 을 작성해야합니다 . MariaDB 서버에는 해당 파일에 액세스 할 수있는 권한이 있어야합니다.  
Grant_priv enum('N','Y') NO   N 사용자는 소유 한 권한을 부여 할 수 있습니다.  
References_priv enum('N','Y') NO   N 미사용  
Index_priv enum('N','Y') NO   N CREATE INDEX .을 사용하여 테이블에 인덱스를 작성할 수 있습니다 . INDEX권한이 없으면 사용자는 권한 이있는 경우CREATE TABLE 문을 사용하여 테이블을 만들 때 인덱스를 만들 수 있으며 사용자는 CREATE권한 이있는 경우 ALTER TABLE 문을 사용하여 인덱스를 만들 수 있습니다 ALTER.  
Alter_priv enum('N','Y') NO   N ALTER TABLE 문을 수행 할 수 있습니다.  
Show_db_priv enum('N','Y') NO   N SHOW DATABASES 문을 사용하여 모든 데이터베이스를 나열 할 수 있습니다. SHOW DATABASES권한이 없으면 사용자는 여전히 SHOW DATABASES명령문을 발행 할 수 있지만 특권이있는 테이블을 포함하는 데이터베이스 만 나열합니다.  
Super_priv enum('N','Y') NO   N 수퍼 유저 명령문을 실행할 수 있습니다 :MUST TO , KILL (이 권한이없는 사용자는 KILL자신의 스레드 만 가능 ),PURGE LOGS , SET 전역 시스템 변수또는 mysqladmin debug 명령. 또한이 사용 권한은 read_only 시작 옵션이 설정되어 있어도 사용자가 데이터를 쓸 수있게하고 , 로깅을 활성화 또는 비활성화하고, 슬레이브에 대한 복제를 활성화 또는 비활성화하고, DEFINER해당 절을 지원 하는 for 문을 지정하고 , 연결 후 한 번 연결합니다 MAX_CONNECTIONSinit-connectmysqld 옵션에 대한 명령문이 지정 되면 SUPER권한이 있는 사용자가 서버에 연결할 때 해당 명령이 실행되지 않습니다 .  
Create_tmp_table_priv enum('N','Y') NO   N CREATE TEMPORARY TABLE . 으로 임시 테이블을 작성할 수 있습니다 .  
Lock_tables_priv enum('N','Y') NO   N LOCK TABLES 문을 사용하여 명시 적 잠금을 획득 합니다. 또한 사용자는 SELECT테이블을 잠그기 위해 테이블에 대한 특권 을 가져야 합니다.  
Execute_priv enum('N','Y') NO   N 저장 프로 시저 또는 함수를 실행할 수 있습니다.  
Repl_slave_priv enum('N','Y') NO   N 마스터에서 슬레이브 서버가 사용하는 계정에는이 권한이 필요합니다. 이는 마스터에 대한 업데이트를 얻는 데 필요합니다.  
Repl_client_priv enum('N','Y') NO   N SHOW MASTER STATUS 및 SHOW SLAVE STATUS 문을 실행할 수 있습니다.  
Create_view_priv enum('N','Y') NO   N CREATE_VIEW 문을 사용하여보기를 작성할 수 있습니다 .  
Show_view_priv enum('N','Y') NO   N SHOW CREATE VIEW 문을 사용하여 뷰를 생성하는 CREATE VIEW 문을 표시 할 수 있습니다 .  
Create_routine_priv enum('N','Y') NO   N CREATE PROCEDURE 및 CREATE FUNCTION 문을 사용하여 저장된 프로그램을 작성할 수 있습니다 .  
Alter_routine_priv enum('N','Y') NO   N ALTER FUNCTION 문을 사용하여 저장된 함수의 특성을 변경할 수 있습니다 .  
Create_user_priv enum('N','Y') NO   N (가)를 사용하여 사용자가 만들 수있는 사용자 CREATE 문을, 또는 암시 적있는 사용자 생성 GRANT의 문을.  
Event_priv enum('N','Y') NO   N 이벤트를 생성, 삭제 및 변경 합니다 .  
Trigger_priv enum('N','Y') NO   N 실행할 수 트리거 실행 테이블 사용자 업데이트와 관련된를 트리거를 생성 하고트리거 DROP 문을.  
Create_tablespace_priv enum('N','Y') NO   N    
Delete_history_priv enum('N','Y') NO   N 시스템 버전 관리를 통해 생성 된 행을 삭제할 수 있습니다. MariaDB 10.3.5
ssl_type enum('', 'ANY', 'X509', 'SPECIFIED') NO     TLS 유형 - TLS 옵션을 참조하십시오 .  
ssl_cipher blob NO   NULL TLS 암호 - TLS 옵션을 참조하십시오 .  
x509_issuer blobNO NO   NULL X509 암호 - TLS 옵션을 참조하십시오 .  
x509_subject blob NO   NULL SSL 제목 - TLS 옵션을 참조하십시오 .  
max_questions int(11) unsigned NO   0 사용자가 시간당 수행 할 수있는 쿼리 수입니다. 0은 무제한입니다. 계정 별 리소스 제한을 참조하십시오 .  
max_updates int(11) unsigned NO   0 사용자가 시간당 수행 할 수있는 업데이트 수입니다. 0은 무제한입니다. 계정 별 리소스 제한을 참조하십시오 .  
max_connections int(11) unsigned NO   0 시간당 계정이 시작할 수있는 연결 수입니다. 0은 무제한입니다. 계정 별 리소스 제한을 참조하십시오 .  
max_user_connections int(11) NO   0 계정이 가질 수있는 동시 연결 수입니다.0은 무제한입니다. 계정 별 리소스 제한을참조하십시오 .  
plugin char(64) NO     연결시 사용되는 인증 플러그인. 비어있는 경우 기본값을 사용합니다 . MariaDB 5.5
authentication_string text NO   NULL 인증 플러그 인의 인증 문자열입니다. MariaDB 5.5
password_expired enum('N','Y') NO   N MySQL 호환 옵션. MariaDB에는 구현되어 있지 않습니다.  
is_role enum('N','Y') NO   N 사용자가 역할 인지 여부 . MariaDB 10.0.5
default_role char(80) NO   N 사용자 로그인시 자동으로 활성화 될 역할. MariaDB 10.1.1
max_statement_time decimal(12,6) NO   0.000000 0이 아니면 자동으로 죽기 전에 실행되는 쿼리의 기간입니다. MariaDB 10.1.1
유형 없는 태만 기술 도입 된

Acl_roles의 추가 상태 변수, MariaDB 10.1.4 의 행 수를 나타내는 mysql.user표는 어디에 포함 is_role='Y'.

Acl_users의 상태 변수는 추가 MariaDB 10.1.4 의 행 수를 나타내는 mysql.user표는 어디에 포함 is_role='N'.

인증 플러그인

때 plugin열 중 하나에 계정을 인증하는 MariaDB 기본적으로 비어 mysql_native_password또는 mysql_old_password플러그인. Password열의 값에 사용 된 해시를 기반으로 결정합니다 . 암호가 설정되지 않았거나 4.1 암호 해시가 사용되면 (41 자 길이) MariaDB는 mysql_native_password플러그인을 사용합니다 . mysql_old_password플러그인 (16 자 길이) 4.1 이전 암호 해시와 함께 사용된다.

MariaDB는 또한 대체 인증 플러그인 의 사용을 지원합니다 . 때 plugin열이 주어진 계정에 대한 비어 있지, MariaDB는 연결 시도를 인증하는 데 사용합니다. 그런 다음 특정 플러그인은 Password열 또는 열의 값을 사용 authentication_string하여 사용자를 인증합니다.

특정 인증 플러그인이 제공 계정을 사용할 수 있습니다 IDENTIFIED VIA authentication_plugin에 절을 CREATE USERALTER USER또는 GRANT문.

예를 들어, 다음 명령문은 PAM 인증 플러그인으로 인증하는 계정을 작성합니다 .

CREATE  USER  에서는 foo2의 @의 테스트  IDENTIFIED  VIA  ;

특정 인증 플러그 인에서 authentication_string열을 사용하는 경우 계정에 대한이 값은 a USING또는 AS키워드 뒤에 지정할 수 있습니다 . 예를 들어, PAM 인증 플러그인 은 계정 의 열로 이동 하는 서비스 이름 을 허용 authentication_string합니다.

CREATE  USER  에서는 foo2의 @의 테스트  IDENTIFIED  VIA  PAM  사용  'mariadb를' ;