Loading...
MySQL 9.5 Reference Manual 9.5의 6.4.2 mysql_secure_installation — Improve MySQL Installation Security의 한국어 번역본입니다.
아래의 경우에 피드백에서 신고해주신다면 반영하겠습니다.
감사합니다 :)
이 프로그램은 다음과 같은 방법으로 MySQL 설치의 보안을 향상할 수 있게 해줍니다:
root 계정에 대한 비밀번호를 설정할 수 있습니다.
로컬 호스트 외부에서 접근 가능한 root 계정을 제거할 수 있습니다.
익명 사용자 계정을 제거할 수 있습니다.
모든 사용자(익명 사용자까지 포함)가 기본적으로 접근할 수 있는 test 데이터베이스와, 이름이 test_로 시작하는 데이터베이스에 누구나 접근할 수 있게 하는 권한을 제거할 수 있습니다.
mysql_secure_installation은 Section 2.9.4, “Securing the Initial MySQL Account”에 설명된 것과 유사한 보안 권장 사항을 구현하는 데 도움이 됩니다.
일반적인 사용 방식은 로컬 MySQL 서버에 접속하여 인수 없이 mysql_secure_installation을 실행하는 것입니다:
1mysql_secure_installation
실행되면, mysql_secure_installation 은 어떤 작업을 수행할지 결정하도록 프롬프트를 표시합니다.
validate_password 컴포넌트는 비밀번호 강도 점검에 사용할 수 있습니다. 플러그인이 설치되어 있지 않으면,
mysql_secure_installation은 이를 설치할지 여부를 사용자에게 묻습니다. 이후 입력되는 모든 비밀번호는, 플러그인이 활성화되어 있다면, 그 플러그인을 사용하여 검사됩니다.
--host 및
--port와 같은 대부분의 일반적인 MySQL 클라이언트 옵션은 명령행과 옵션 파일에서 사용할 수 있습니다. 예를 들어, IPv6를 통해 포트 3307로 로컬 서버에 연결하려면 다음 명령을 사용합니다:
1mysql_secure_installation --host=::1 --port=3307
mysql_secure_installation은 명령행 또는 옵션 파일의 [mysql_secure_installation] 그룹 및
[client] 그룹에 지정할 수 있는 다음 옵션을 지원합니다. MySQL 프로그램에서 사용하는 옵션 파일에 대한 정보는
Section 6.2.2.2, “Using Option Files”를 참조하십시오.
Table 6.9 mysql_secure_installation Options
| Option Name | Description |
|---|---|
| --defaults-extra-file | 일반적인 옵션 파일에 추가로 지정된 옵션 파일 읽기 |
| --defaults-file | 지정된 옵션 파일만 읽기 |
| --defaults-group-suffix | 옵션 그룹 접미사 값 |
| --help | 도움말 메시지를 표시하고 종료 |
| --host | MySQL 서버가 위치한 호스트 |
| --no-defaults | 어떠한 옵션 파일도 읽지 않음 |
| --password | 허용되지만 항상 무시됨. mysql_secure_installation이 실행될 때마다, 사용 여부와 관계없이 사용자에게 비밀번호를 프롬프트함 |
| --port | 연결을 위한 TCP/IP 포트 번호 |
| --print-defaults | 프로그램 이름과 옵션 파일에서 가져온 모든 옵션을 출력 |
| --protocol | 사용할 전송 프로토콜 |
| --socket | 사용할 Unix 소켓 파일 또는 Windows 네임드 파이프 |
| --ssl-ca | 신뢰할 수 있는 SSL 인증 기관 목록이 들어 있는 파일 |
| --ssl-capath | 신뢰할 수 있는 SSL 인증 기관 인증서 파일이 들어 있는 디렉터리 |
| --ssl-cert | X.509 인증서가 들어 있는 파일 |
| --ssl-cipher | 연결 암호화에 허용되는 암호 |
| --ssl-crl | 인증서 폐기 목록이 들어 있는 파일 |
| --ssl-crlpath | 인증서 폐기 목록 파일이 들어 있는 디렉터리 |
| --ssl-fips-mode | 클라이언트 측에서 FIPS 모드를 활성화할지 여부 |
| --ssl-key | X.509 키가 들어 있는 파일 |
| --ssl-mode | 서버와의 연결에 대해 원하는 보안 상태 |
| --ssl-session-data | SSL 세션 데이터가 들어 있는 파일 |
| --ssl-session-data-continue-on-failed-reuse | 세션 재사용에 실패하더라도 연결을 설정할지 여부 |
| --tls-ciphersuites | 암호화된 연결에 사용할 수 있는 TLSv1.3 암호 모음 |
| --tls-sni-servername | 클라이언트가 제공하는 서버 이름 |
| --tls-version | 암호화된 연결에 허용되는 TLS 프로토콜 |
| --use-default | 사용자 상호작용 없이 실행 |
| --user | 서버에 연결할 때 사용할 MySQL 사용자 이름 |
| Option Name | Description |
|---|
--help,
-?| Property | Value |
|---|---|
| Command-Line Format | --help |
도움말 메시지를 표시하고 종료합니다.
| Property | Value |
|---|---|
| Command-Line Format | --defaults-extra-file=file_name |
| Type | File name |
전역 옵션 파일 다음에(Unix에서는 사용자 옵션 파일 이전에) 이 옵션 파일을 읽습니다. 파일이 존재하지 않거나 접근할 수 없으면 오류가 발생합니다.
_file_name_이 절대 경로 이름이 아니면 현재 디렉터리를 기준으로 해석됩니다.
이 옵션 및 다른 옵션 파일 관련 옵션에 대한 추가 정보는 Section 6.2.2.3, “Command-Line Options that Affect Option-File Handling”을 참조하십시오.
| Property | Value |
|---|---|
| Command-Line Format | --defaults-file=file_name |
| Type | File name |
지정된 옵션 파일만 사용합니다. 파일이 존재하지 않거나 접근할 수 없으면 오류가 발생합니다.
_file_name_이 절대 경로 이름이 아니면 현재 디렉터리를 기준으로 해석됩니다.
이 옵션 및 다른 옵션 파일 관련 옵션에 대한 추가 정보는 Section 6.2.2.3, “Command-Line Options that Affect Option-File Handling”을 참조하십시오.
| Property | Value |
|---|---|
| Command-Line Format | --defaults-group-suffix=str |
| Type | String |
일반적인 옵션 그룹뿐 아니라, 일반적인 이름에
str 접미사가 붙은 그룹도 읽습니다. 예를 들어,
mysql_secure_installation은 일반적으로
[client] 그룹과
[mysql_secure_installation] 그룹을 읽습니다. 이 옵션이
--defaults-group-suffix=_other로 주어지면,
mysql_secure_installation은
[client_other] 그룹과
[mysql_secure_installation_other] 그룹도 읽습니다.
이 옵션 및 다른 옵션 파일 관련 옵션에 대한 추가 정보는 Section 6.2.2.3, “Command-Line Options that Affect Option-File Handling”을 참조하십시오.
--host=host_name,
-h host_name| Property | Value |
|---|---|
| Command-Line Format | --host |
지정된 호스트의 MySQL 서버에 연결합니다.
| Property | Value |
|---|---|
| Command-Line Format | --no-defaults |
어떠한 옵션 파일도 읽지 않습니다. 옵션 파일에서 알 수 없는 옵션을 읽는 바람에 프로그램 시작이 실패하는 경우,
--no-defaults를 사용하여 해당 파일이 읽히지 않도록 할 수 있습니다.
예외적으로, .mylogin.cnf 파일은 존재한다면 항상 읽습니다. 이렇게 하면,
--no-defaults가 사용되는 경우에도 명령행에 직접 지정하는 것보다 더 안전한 방식으로 비밀번호를 지정할 수 있습니다.
.mylogin.cnf를 생성하려면 mysql_config_editor 유틸리티를 사용하십시오.
Section 6.6.7, “mysql_config_editor — MySQL Configuration Utility”를 참조하십시오.
이 옵션 및 다른 옵션 파일 관련 옵션에 대한 추가 정보는 Section 6.2.2.3, “Command-Line Options that Affect Option-File Handling”을 참조하십시오.
--password=password,
-p password| Property | Value |
|---|---|
| Command-Line Format | --password=password |
| Type | String |
| Default Value | [none] |
이 옵션은 허용되지만 무시됩니다. 이 옵션 사용 여부와 관계없이, mysql_secure_installation은 항상 사용자에게 비밀번호를 입력하도록 프롬프트합니다.
--port=port_num,
-P port_num| Property | Value |
|---|---|
| Command-Line Format | --port=port_num |
| Type | Numeric |
| Default Value | 3306 |
TCP/IP 연결에 사용할 포트 번호입니다.
| Property | Value |
|---|---|
| Command-Line Format | --print-defaults |
프로그램 이름과 옵션 파일에서 가져오는 모든 옵션을 출력합니다.
이 옵션 및 다른 옵션 파일 관련 옵션에 대한 추가 정보는 Section 6.2.2.3, “Command-Line Options that Affect Option-File Handling”을 참조하십시오.
| Property | Value |
|---|---|
| Command-Line Format | --protocol=type |
| Type | String |
| Default Value | [see text] |
| Valid Values | TCP<br>SOCKET<br>PIPE<br>MEMORY |
서버에 연결할 때 사용할 전송 프로토콜입니다. 일반적으로 사용되는 다른 연결 매개변수들이 원하는 것과 다른 프로토콜을 사용하게 되는 경우에 유용합니다. 허용되는 값에 대한 자세한 내용은 Section 6.2.7, “Connection Transport Protocols”를 참조하십시오.
--socket=path,
-S path| Property | Value |
|---|---|
| Command-Line Format | `--socket={file_name |
| Type | String |
localhost에 대한 연결에서 사용할 Unix 소켓 파일 또는, Windows에서는 사용할 네임드 파이프의 이름입니다.
Windows에서 이 옵션은 서버가 네임드 파이프 연결을 지원하기 위해
named_pipe 시스템 변수를 활성화한 상태에서 시작된 경우에만 적용됩니다. 또한, 연결은
named_pipe_full_access_group 시스템 변수에 지정된 Windows 그룹의 구성원이어야 합니다.
--ssl*--ssl로 시작하는 옵션은 서버에 암호화를 사용하여 연결할지 여부를 지정하고, SSL 키와 인증서의 위치를 나타냅니다.
Command Options for Encrypted Connections를 참조하십시오.
| Property | Value |
|---|---|
| Command-Line Format | `--ssl-fips-mode={OFF |
| Deprecated | Yes |
| Type | Enumeration |
| Default Value | OFF |
| Valid Values | OFF<br>ON<br>STRICT |
클라이언트 측에서 FIPS 모드를 활성화할지 여부를 제어합니다.
--ssl-fips-mode 옵션은 다른
--ssl-xxx 옵션과 달리 암호화된 연결을 설정하는 데 사용되지 않고, 어떤 암호 연산을 허용할지에 영향을 줍니다.
Section 8.8, “FIPS Support”를 참조하십시오.
허용되는
--ssl-fips-mode 값은 다음과 같습니다:
OFF: FIPS 모드를 비활성화합니다.
ON: FIPS 모드를 활성화합니다.
STRICT: “strict” FIPS 모드를 활성화합니다.
참고
OpenSSL FIPS Object Module을 사용할 수 없는 경우,
--ssl-fips-mode에 허용되는 유일한 값은 OFF입니다. 이 경우,
--ssl-fips-mode를 ON 또는 STRICT로 설정하면 클라이언트는 시작 시 경고를 출력하고 non-FIPS 모드로 동작합니다.
이 옵션은 사용 중단(deprecated) 상태입니다. 향후 MySQL 버전에서 제거될 예정입니다.
| Property | Value |
|---|---|
| Command-Line Format | --tls-ciphersuites=ciphersuite_list |
| Type | String |
TLSv1.3을 사용하는 암호화된 연결에 허용되는 암호 모음입니다. 값은 하나 이상의 암호 모음 이름을 콜론으로 구분한 목록입니다. 이 옵션에 지정할 수 있는 암호 모음은 MySQL을 컴파일할 때 사용된 SSL 라이브러리에 따라 달라집니다. 자세한 내용은 Section 8.3.2, “Encrypted Connection TLS Protocols and Ciphers”를 참조하십시오.
| Property | Value |
|---|---|
| Command-Line Format | --tls-sni-servername=server_name |
| Type | String |
지정된 이름은 libmysqlclient C API 라이브러리의
MYSQL_OPT_TLS_SNI_SERVERNAME 옵션을 사용하여
mysql_options()에 전달됩니다. 서버 이름은 대소문자를 구분하지 않습니다. 현재 세션에 대해 클라이언트가 어떤 서버 이름을 지정했는지 확인하려면, (지정했다면)
Tls_sni_server_name 상태 변수를 확인하십시오.
Server Name Indication(SNI)는 TLS 프로토콜의 확장입니다(이 옵션이 동작하려면 OpenSSL이 TLS 확장을 사용하도록 컴파일되어 있어야 합니다). MySQL의 SNI 구현은 클라이언트 측만을 나타냅니다.
| Property | Value |
|---|---|
| Command-Line Format | --tls-version=protocol_list |
| Type | String |
| Default Value | TLSv1,TLSv1.1,TLSv1.2,TLSv1.3 (OpenSSL 1.1.1 이상)<br>TLSv1,TLSv1.1,TLSv1.2 (그 외) |
암호화된 연결에 허용되는 TLS 프로토콜입니다. 값은 하나 이상의 프로토콜 이름을 콤마로 구분한 목록입니다. 이 옵션에 지정할 수 있는 프로토콜은 MySQL을 컴파일할 때 사용된 SSL 라이브러리에 따라 달라집니다. 자세한 내용은 Section 8.3.2, “Encrypted Connection TLS Protocols and Ciphers”를 참조하십시오.
| Property | Value |
|---|---|
| Command-Line Format | --use-default |
| Type | Boolean |
비대화형으로 실행합니다. 이 옵션은 무인 설치 작업에 사용할 수 있습니다.
--user=user_name,
-u user_name| Property | Value |
|---|---|
| Command-Line Format | --user=user_name |
| Type | String |
서버에 연결할 때 사용할 MySQL 계정의 사용자 이름입니다.
6.4.1 comp_err — Compile MySQL Error Message File
6.4.3 mysql_tzinfo_to_sql — Load the Time Zone Tables