【PostgreSQL】PostgreSQL の設定ファイル(postgresql.conf、pg_hba.conf)の解説【Part.5】

今回は運用で必須となる PostgreSQL の設定ファイル(postgresql.conf、pg_hba.conf)ファイルについて解説します。

 

 

postgresql.conf ファイル

postgresql.conf ファイルは PostgreSQL の全体の動作を決める設定ファイルです。

postgresql.conf ファイルは initdb コマンド実行時に自動的に作成され、データベースクラスタに配置されます。

 

 

postgresql.conf ファイルの書式

postgresql.conf ファイルの書式は以下です。

パラメータ名 = 設定

 

【例】

-bash-4.2$ pwd 
/var/lib/pgsql/data 
-bash-4.2$ cat postgresql.conf 
# ----------------------------- 
# PostgreSQL configuration file 
# ----------------------------- 

# This file consists of lines of the form: 

#   name = value 

# (The "=" is optional.)  Whitespace may be used.  Comments are introduced with 
# "#" anywhere on a line.  The complete list of parameter names and allowed 
# values can be found in the PostgreSQL documentation. 

# The commented-out settings shown in this file represent the default values. 
# Re-commenting a setting is NOT sufficient to revert it to the default value; 
# you need to reload the server. 

# This file is read on server startup and when the server receives a SIGHUP 
# signal.  If you edit the file on a running system, you have to SIGHUP the 
# server for the changes to take effect, or use "pg_ctl reload".  Some 
# parameters, which are marked below, require a server shutdown and restart to 
# take effect. 

# Any parameter can also be given as a command-line option to the server, e.g., 
# "postgres -c log_connections=on".  Some parameters can be changed at run time 
# with the "SET" SQL command. 

# Memory units:  kB = kilobytes        Time units:  ms  = milliseconds 
#                MB = megabytes                     s   = seconds 
#                GB = gigabytes                     min = minutes 
#                                                   h   = hours 
#                                                   d   = days 
 
 
#------------------------------------------------------------------------------ 
# FILE LOCATIONS 
#------------------------------------------------------------------------------ 
 
# The default values of these variables are driven from the -D command-line 
# option or PGDATA environment variable, represented here as ConfigDir. 
 
#data_directory = 'ConfigDir'           # use data in another directory 
                                        # (change requires restart) 
#hba_file = 'ConfigDir/pg_hba.conf'     # host-based authentication file 
                                        # (change requires restart) 
#ident_file = 'ConfigDir/pg_ident.conf' # ident configuration file 
                                        # (change requires restart) 
 
# If external_pid_file is not explicitly set, no extra PID file is written. 
#external_pid_file = ''                 # write an extra PID file 
                                        # (change requires restart) 
 
 
#------------------------------------------------------------------------------ 
# CONNECTIONS AND AUTHENTICATION 
#------------------------------------------------------------------------------ 
 
# - Connection Settings - 
 
#listen_addresses = 'localhost'         # what IP address(es) to listen on; 
                                        # comma-separated list of addresses; 
                                        # defaults to 'localhost'; use '*' for all 
                                        # (change requires restart) 
#port = 5432                            # (change requires restart) ← ポート番号の設定
# Note: In RHEL/Fedora installations, you can't set the port number here; 
# adjust it in the service file instead. 
max_connections = 100                   # (change requires restart) 
# Note:  Increasing max_connections costs ~400 bytes of shared memory per 
# connection slot, plus lock space (see max_locks_per_transaction). 
#superuser_reserved_connections = 3     # (change requires restart) 
#unix_socket_directories = '/var/run/postgresql, /tmp'  # comma-separated list of directories 
                                        # (change requires restart) 
#unix_socket_group = ''                 # (change requires restart) 
#unix_socket_permissions = 0777         # begin with 0 to use octal notation 
                                        # (change requires restart) 
#bonjour = off                          # advertise server via Bonjour 
                                        # (change requires restart) 
#bonjour_name = ''                      # defaults to the computer name 
                                        # (change requires restart) 
 
# - Security and Authentication - 
 
#authentication_timeout = 1min          # 1s-600s 
#ssl = off                              # (change requires restart) 
#ssl_ciphers = 'ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH'      # allowed SSL ciphers 
                                        # (change requires restart) 
#ssl_renegotiation_limit = 0            # amount of data between renegotiations 
#ssl_cert_file = 'server.crt'           # (change requires restart) 
#ssl_key_file = 'server.key'            # (change requires restart) 
#ssl_ca_file = ''                       # (change requires restart) 
#ssl_crl_file = ''                      # (change requires restart) 
#password_encryption = on 
#db_user_namespace = off 
 
# Kerberos and GSSAPI 
#krb_server_keyfile = '' 
#krb_srvname = 'postgres'               # (Kerberos only) 
#krb_caseins_users = off 
 
# - TCP Keepalives - 
# see "man 7 tcp" for details 
 
#tcp_keepalives_idle = 0                # TCP_KEEPIDLE, in seconds; 
                                        # 0 selects the system default 
#tcp_keepalives_interval = 0            # TCP_KEEPINTVL, in seconds; 
                                        # 0 selects the system default 
#tcp_keepalives_count = 0               # TCP_KEEPCNT; 
                                        # 0 selects the system default 
 
 
#------------------------------------------------------------------------------ 
# RESOURCE USAGE (except WAL) 
#------------------------------------------------------------------------------ 
 
# - Memory - 
 
shared_buffers = 32MB                   # min 128kB 
                                        # (change requires restart) 
#temp_buffers = 8MB                     # min 800kB 
#max_prepared_transactions = 0          # zero disables the feature 
                                        # (change requires restart) 
# Note:  Increasing max_prepared_transactions costs ~600 bytes of shared memory 
# per transaction slot, plus lock space (see max_locks_per_transaction). 
# It is not advisable to set max_prepared_transactions nonzero unless you 
# actively intend to use prepared transactions. 
#work_mem = 1MB                         # min 64kB 
#maintenance_work_mem = 16MB            # min 1MB 
#max_stack_depth = 2MB                  # min 100kB 
 
# - Disk - 
 
#temp_file_limit = -1                   # limits per-session temp file space 
                                        # in kB, or -1 for no limit 
 
# - Kernel Resource Usage - 
 
#max_files_per_process = 1000           # min 25 
                                        # (change requires restart) 
#shared_preload_libraries = ''          # (change requires restart) 
 
# - Cost-Based Vacuum Delay - 
 
#vacuum_cost_delay = 0ms                # 0-100 milliseconds 
#vacuum_cost_page_hit = 1               # 0-10000 credits 
#vacuum_cost_page_miss = 10             # 0-10000 credits 
#vacuum_cost_page_dirty = 20            # 0-10000 credits 
#vacuum_cost_limit = 200                # 1-10000 credits 
 
# - Background Writer - 
 
#bgwriter_delay = 200ms                 # 10-10000ms between rounds 
#bgwriter_lru_maxpages = 100            # 0-1000 max buffers written/round 
#bgwriter_lru_multiplier = 2.0          # 0-10.0 multipler on buffers scanned/round 
 
# - Asynchronous Behavior - 
 
#effective_io_concurrency = 1           # 1-1000; 0 disables prefetching 
 
 
#------------------------------------------------------------------------------ 
# WRITE AHEAD LOG 
#------------------------------------------------------------------------------ 
 
# - Settings - 
 
#wal_level = minimal                    # minimal, archive, or hot_standby 
                                        # (change requires restart) 
#fsync = on                             # turns forced synchronization on or off 
#synchronous_commit = on                # synchronization level; 
                                        # off, local, remote_write, or on 
#wal_sync_method = fsync                # the default is the first option 
                                        # supported by the operating system: 
                                        #   open_datasync 
                                        #   fdatasync (default on Linux) 
                                        #   fsync 
                                        #   fsync_writethrough 
                                        #   open_sync 
#full_page_writes = on                  # recover from partial page writes 
#wal_buffers = -1                       # min 32kB, -1 sets based on shared_buffers 
                                        # (change requires restart) 
#wal_writer_delay = 200ms               # 1-10000 milliseconds 
 
#commit_delay = 0                       # range 0-100000, in microseconds 
#commit_siblings = 5                    # range 1-1000 
 
# - Checkpoints - 
 
#checkpoint_segments = 3                # in logfile segments, min 1, 16MB each 
#checkpoint_timeout = 5min              # range 30s-1h 
#checkpoint_completion_target = 0.5     # checkpoint target duration, 0.0 - 1.0 
#checkpoint_warning = 30s               # 0 disables 
 
# - Archiving - 
 
#archive_mode = off             # allows archiving to be done 
                                # (change requires restart) 
#archive_command = ''           # command to use to archive a logfile segment 
                                # placeholders: %p = path of file to archive 
                                #               %f = file name only 
                                # e.g. 'test ! -f /mnt/server/archivedir/%f && cp %p /mnt/server/archivedir/%f' 
#archive_timeout = 0            # force a logfile segment switch after this 
                                # number of seconds; 0 disables 
 
 
#------------------------------------------------------------------------------ 
# REPLICATION 
#------------------------------------------------------------------------------ 
 
# - Sending Server(s) - 
 
# Set these on the master and on any standby that will send replication data. 
 
#max_wal_senders = 0            # max number of walsender processes 
                                # (change requires restart) 
#wal_keep_segments = 0          # in logfile segments, 16MB each; 0 disables 
#replication_timeout = 60s      # in milliseconds; 0 disables 
 
# - Master Server - 
 
# These settings are ignored on a standby server. 
 
#synchronous_standby_names = '' # standby servers that provide sync rep 
                                # comma-separated list of application_name 
                                # from standby(s); '*' = all 
#vacuum_defer_cleanup_age = 0   # number of xacts by which cleanup is delayed 
 
# - Standby Servers - 
 
# These settings are ignored on a master server. 
 
#hot_standby = off                      # "on" allows queries during recovery 
                                        # (change requires restart) 
#max_standby_archive_delay = 30s        # max delay before canceling queries 
                                        # when reading WAL from archive; 
                                        # -1 allows indefinite delay 
#max_standby_streaming_delay = 30s      # max delay before canceling queries 
                                        # when reading streaming WAL; 
                                        # -1 allows indefinite delay 
#wal_receiver_status_interval = 10s     # send replies at least this often 
                                        # 0 disables 
#hot_standby_feedback = off             # send info from standby to prevent 
                                        # query conflicts 
 
 
#------------------------------------------------------------------------------ 
# QUERY TUNING 
#------------------------------------------------------------------------------ 
 
# - Planner Method Configuration - 
 
#enable_bitmapscan = on 
#enable_hashagg = on 
#enable_hashjoin = on 
#enable_indexscan = on 
#enable_indexonlyscan = on 
#enable_material = on 
#enable_mergejoin = on 
#enable_nestloop = on 
#enable_seqscan = on 
#enable_sort = on 
#enable_tidscan = on 
 
# - Planner Cost Constants - 
 
#seq_page_cost = 1.0                    # measured on an arbitrary scale 
#random_page_cost = 4.0                 # same scale as above 
#cpu_tuple_cost = 0.01                  # same scale as above 
#cpu_index_tuple_cost = 0.005           # same scale as above 
#cpu_operator_cost = 0.0025             # same scale as above 
#effective_cache_size = 128MB 
 
# - Genetic Query Optimizer - 
 
#geqo = on 
#geqo_threshold = 12 
#geqo_effort = 5                        # range 1-10 
#geqo_pool_size = 0                     # selects default based on effort 
#geqo_generations = 0                   # selects default based on effort 
#geqo_selection_bias = 2.0              # range 1.5-2.0 
#geqo_seed = 0.0                        # range 0.0-1.0 
 
# - Other Planner Options - 
 
#default_statistics_target = 100        # range 1-10000 
#constraint_exclusion = partition       # on, off, or partition 
#cursor_tuple_fraction = 0.1            # range 0.0-1.0 
#from_collapse_limit = 8 
#join_collapse_limit = 8                # 1 disables collapsing of explicit 
                                        # JOIN clauses 
 
 
#------------------------------------------------------------------------------ 
# ERROR REPORTING AND LOGGING 
#------------------------------------------------------------------------------ 
 
# - Where to Log - 
 
#log_destination = 'stderr'             # Valid values are combinations of 
                                        # stderr, csvlog, syslog, and eventlog, 
                                        # depending on platform.  csvlog 
                                        # requires logging_collector to be on. 
 
# This is used when logging to stderr: 
logging_collector = on                  # Enable capturing of stderr and csvlog 
                                        # into log files. Required to be on for 
                                        # csvlogs. 
                                        # (change requires restart) 
 
# These are only used if logging_collector is on: 
#log_directory = 'pg_log'               # directory where log files are written, 
                                        # can be absolute or relative to PGDATA 
log_filename = 'postgresql-%a.log'      # log file name pattern, 
                                        # can include strftime() escapes 
#log_file_mode = 0600                   # creation mode for log files, 
                                        # begin with 0 to use octal notation 
log_truncate_on_rotation = on           # If on, an existing log file with the 
                                        # same name as the new log file will be 
                                        # truncated rather than appended to. 
                                        # But such truncation only occurs on 
                                        # time-driven rotation, not on restarts 
                                        # or size-driven rotation.  Default is 
                                        # off, meaning append to existing files 
                                        # in all cases. 
log_rotation_age = 1d                   # Automatic rotation of logfiles will 
                                        # happen after that time.  0 disables. 
log_rotation_size = 0                   # Automatic rotation of logfiles will 
                                        # happen after that much log output. 
                                        # 0 disables. 
 
# These are relevant when logging to syslog: 
#syslog_facility = 'LOCAL0' 
#syslog_ident = 'postgres' 
 
# This is only relevant when logging to eventlog (win32): 
# (change requires restart) 
#event_source = 'PostgreSQL' 
 
# - When to Log - 
 
#client_min_messages = notice           # values in order of decreasing detail: 
                                        #   debug5 
                                        #   debug4 
                                        #   debug3 
                                        #   debug2 
                                        #   debug1 
                                        #   log 
                                        #   notice 
                                        #   warning 
                                        #   error 
 
#log_min_messages = warning             # values in order of decreasing detail: 
                                        #   debug5 
                                        #   debug4 
                                        #   debug3 
                                        #   debug2 
                                        #   debug1 
                                        #   info 
                                        #   notice 
                                        #   warning 
                                        #   error 
                                        #   log 
                                        #   fatal 
                                        #   panic 
 
#log_min_error_statement = error        # values in order of decreasing detail: 
                                        #   debug5 
                                        #   debug4 
                                        #   debug3 
                                        #   debug2 
                                        #   debug1 
                                        #   info 
                                        #   notice 
                                        #   warning 
                                        #   error 
                                        #   log 
                                        #   fatal 
                                        #   panic (effectively off) 
 
#log_min_duration_statement = -1        # -1 is disabled, 0 logs all statements 
                                        # and their durations, > 0 logs only 
                                        # statements running at least this number 
                                        # of milliseconds 
 
 
# - What to Log - 
 
#debug_print_parse = off 
#debug_print_rewritten = off 
#debug_print_plan = off 
#debug_pretty_print = on 
#log_checkpoints = off 
#log_connections = off 
#log_disconnections = off 
#log_duration = off 
#log_error_verbosity = default          # terse, default, or verbose messages 
#log_hostname = off 
#log_line_prefix = ''                   # special values: 
                                        #   %a = application name 
                                        #   %u = user name 
                                        #   %d = database name 
                                        #   %r = remote host and port 
                                        #   %h = remote host 
                                        #   %p = process ID 
                                        #   %t = timestamp without milliseconds 
                                        #   %m = timestamp with milliseconds 
                                        #   %i = command tag 
                                        #   %e = SQL state 
                                        #   %c = session ID 
                                        #   %l = session line number 
                                        #   %s = session start timestamp 
                                        #   %v = virtual transaction ID 
                                        #   %x = transaction ID (0 if none) 
                                        #   %q = stop here in non-session 
                                        #        processes 
                                        #   %% = '%' 
                                        # e.g. '<%u%%%d> ' 
#log_lock_waits = off                   # log lock waits >= deadlock_timeout 
#log_statement = 'none'                 # none, ddl, mod, all 
#log_temp_files = -1                    # log temporary files equal or larger 
                                        # than the specified size in kilobytes; 
                                        # -1 disables, 0 logs all temp files 
log_timezone = 'UTC' 
 
 
#------------------------------------------------------------------------------ 
# RUNTIME STATISTICS 
#------------------------------------------------------------------------------ 
 
# - Query/Index Statistics Collector - 
 
#track_activities = on 
#track_counts = on 
#track_io_timing = off 
#track_functions = none                 # none, pl, all 
#track_activity_query_size = 1024       # (change requires restart) 
#update_process_title = on 
#stats_temp_directory = 'pg_stat_tmp' 
 
 
# - Statistics Monitoring - 
 
#log_parser_stats = off 
#log_planner_stats = off 
#log_executor_stats = off 
#log_statement_stats = off 
 
 
#------------------------------------------------------------------------------ 
# AUTOVACUUM PARAMETERS 
#------------------------------------------------------------------------------ 
 
#autovacuum = on                        # Enable autovacuum subprocess?  'on' 
                                        # requires track_counts to also be on. 
#log_autovacuum_min_duration = -1       # -1 disables, 0 logs all actions and 
                                        # their durations, > 0 logs only 
                                        # actions running at least this number 
                                        # of milliseconds. 
#autovacuum_max_workers = 3             # max number of autovacuum subprocesses 
                                        # (change requires restart) 
#autovacuum_naptime = 1min              # time between autovacuum runs 
#autovacuum_vacuum_threshold = 50       # min number of row updates before 
                                        # vacuum 
#autovacuum_analyze_threshold = 50      # min number of row updates before 
                                        # analyze 
#autovacuum_vacuum_scale_factor = 0.2   # fraction of table size before vacuum 
#autovacuum_analyze_scale_factor = 0.1  # fraction of table size before analyze 
#autovacuum_freeze_max_age = 200000000  # maximum XID age before forced vacuum 
                                        # (change requires restart) 
#autovacuum_vacuum_cost_delay = 20ms    # default vacuum cost delay for 
                                        # autovacuum, in milliseconds; 
                                        # -1 means use vacuum_cost_delay 
#autovacuum_vacuum_cost_limit = -1      # default vacuum cost limit for 
                                        # autovacuum, -1 means use 
                                        # vacuum_cost_limit 
 
 
#------------------------------------------------------------------------------ 
# CLIENT CONNECTION DEFAULTS 
#------------------------------------------------------------------------------ 
 
# - Statement Behavior - 
 
#search_path = '"$user",public'         # schema names 
#default_tablespace = ''                # a tablespace name, '' uses the default 
#temp_tablespaces = ''                  # a list of tablespace names, '' uses 
                                        # only default tablespace 
#check_function_bodies = on 
#default_transaction_isolation = 'read committed' 
#default_transaction_read_only = off 
#default_transaction_deferrable = off 
#session_replication_role = 'origin' 
#statement_timeout = 0                  # in milliseconds, 0 is disabled 
#vacuum_freeze_min_age = 50000000 
#vacuum_freeze_table_age = 150000000 
#bytea_output = 'hex'                   # hex, escape 
#xmlbinary = 'base64' 
#xmloption = 'content' 
#gin_fuzzy_search_limit = 0 
 
# - Locale and Formatting - 
 
datestyle = 'iso, mdy' 
#intervalstyle = 'postgres' 
timezone = 'UTC' 
#timezone_abbreviations = 'Default'     # Select the set of available time zone 
                                        # abbreviations.  Currently, there are 
                                        #   Default 
                                        #   Australia (historical usage) 
                                        #   India 
                                        # You can create your own file in 
                                        # share/timezonesets/. 
#extra_float_digits = 0                 # min -15, max 3 
#client_encoding = sql_ascii            # actually, defaults to database 
                                        # encoding 
 
# These settings are initialized by initdb, but they can be changed. 
lc_messages = 'en_US.UTF-8'                     # locale for system error message 
                                        # strings 
lc_monetary = 'en_US.UTF-8'                     # locale for monetary formatting 
lc_numeric = 'en_US.UTF-8'                      # locale for number formatting 
lc_time = 'en_US.UTF-8'                         # locale for time formatting 
 
# default configuration for text search 
default_text_search_config = 'pg_catalog.english' 
 
# - Other Defaults - 
 
#dynamic_library_path = '$libdir' 
#local_preload_libraries = '' 
 
 
#------------------------------------------------------------------------------ 
# LOCK MANAGEMENT 
#------------------------------------------------------------------------------ 
 
#deadlock_timeout = 1s 
#max_locks_per_transaction = 64         # min 10 
                                        # (change requires restart) 
# Note:  Each lock table slot uses ~270 bytes of shared memory, and there are 
# max_locks_per_transaction * (max_connections + max_prepared_transactions) 
# lock table slots. 
#max_pred_locks_per_transaction = 64    # min 10 
                                        # (change requires restart) 
 
 
#------------------------------------------------------------------------------ 
# VERSION/PLATFORM COMPATIBILITY 
#------------------------------------------------------------------------------ 
 
# - Previous PostgreSQL Versions - 
 
#array_nulls = on 
#backslash_quote = safe_encoding        # on, off, or safe_encoding 
#default_with_oids = off 
#escape_string_warning = on 
#lo_compat_privileges = off 
#quote_all_identifiers = off 
#sql_inheritance = on 
#standard_conforming_strings = on 
#synchronize_seqscans = on 
 
# - Other Platforms and Clients - 
 
#transform_null_equals = off 
 
 
#------------------------------------------------------------------------------ 
# ERROR HANDLING 
#------------------------------------------------------------------------------ 
 
#exit_on_error = off                    # terminate session on any error? 
#restart_after_crash = on               # reinitialize after backend crash? 
 
 
#------------------------------------------------------------------------------ 
# CUSTOMIZED OPTIONS 
#------------------------------------------------------------------------------ 
 
# Add settings for extensions here 
-bash-4.2$

 

 

ログの設定

 

postgresql.conf のパラメータが反映されるタイミング

PosgreSQL データベースの「再起動(pg_ctl restart コマンド)」「リロード(pg_ctl reload コマンド)」かにより、postgresql.conf ファイルのパラメータが PostgreSQL データベースに反映されかどうかが変わってきます。

つまり、PostgreSQL データベースの「リロード」でも反映されるパラメータがあったり、PostgreSQL データベースの「再起動」でしか反映されないパラメータがあります。

 

■postgresql.conf ファイルのリロードコマンド

pg_ctl reload

 

PostgreSQL の再起動でしか反映されないパラメータ(リロードでは反映されないパラメータ)はシステムの動作に大きな影響のある以下の3つです。

 

ポート番号の変更

PostgreSQL のポート番号は postgresql.conf ファイルのリロードでは変更できません。

再起動、停止起動によるファイルの再読み込みで変更が反映されます。

port パラメータで設定します。

一般ユーザーでは設定変更が出来ず、スーパーユーザーのみ設定変更ができます。

また、スーパーユーザーは SET コマンドでも設定ができます。(設定変更の反映は PostgreSQL の再起動)

 

 

postgresql.auto.conf ファイル

postgresql.auto.conf ファイルは、PostgreSQL 9.4 から新しい機能として追加されています。

postgresql.conf ファイルより postgresql.auto.conf ファイルの方が優先されます。

 

 

 

 

pg_hba.conf ファイル

pg_hba.conf ファイルは「クライアントからの接続を制御する(クライアント認証を設定する)」設定ファイルです。

pg_hba.conf ファイルは「データベースやユーザーごと」にクライアント認証を設定できます。

誰もがデータベースに接続できてしまうとセキュリティに問題が発生します。

通常データベースにアクセスするのは、連携しているアプリケーションサーバーやWebサーバーなど特定のシステムだけです。

ユーザーが直接データベースにアクセスをして作業をするということはありません。

 

pg_hba.conf ファイルによりどこからの接続は許可する、どこからは拒否するといった設定が可能になります。

 

pg_hba.conf ファイルはデータベースクラスタの作成時(initdb 実行時)に一緒に作成されます。

 

■クライアント認証

クライアント認証の判定は上から順番に行います。

関係がないレコードの場合は、次の行で判定されます。

一度判定されたら、その行で終了し、その下の行での判定はしません。

 

 

クライアント認証方式

 

 

pg_hba.confファイル

■pg_hba.conf ファイルの場所

-bash-4.2$ pwd 
/var/lib/pgsql/data 
-bash-4.2$ ls 
base         pg_ident.conf  pg_serial     pg_tblspc    postgresql.conf 
global       pg_log         pg_snapshots  pg_twophase  postmaster.opts 
pg_clog      pg_multixact   pg_stat_tmp   PG_VERSION   postmaster.pid 
pg_hba.conf  pg_notify      pg_subtrans   pg_xlog 
-bash-4.2$

 

 

■pg_hba.conf ファイルの内容

-bash-4.2$ cat pg_hba.conf 
# PostgreSQL Client Authentication Configuration File 
# =================================================== 

# Refer to the "Client Authentication" section in the PostgreSQL 
# documentation for a complete description of this file.  A short 
# synopsis follows. 

# This file controls: which hosts are allowed to connect, how clients 
# are authenticated, which PostgreSQL user names they can use, which 
# databases they can access.  Records take one of these forms: 

# local      DATABASE  USER  METHOD  [OPTIONS]  ← local は UNIX ドメインです。

→ local  データベース名   ユーザー名   認証方式
# host       DATABASE  USER  ADDRESS  METHOD  [OPTIONS]   ← host は TCP/IP 接続です。

→ host   データベース名   ユーザー名   IPアドレス  サブネットマスク  認証方式
# hostssl    DATABASE  USER  ADDRESS  METHOD  [OPTIONS] 
# hostnossl  DATABASE  USER  ADDRESS  METHOD  [OPTIONS] 

~ 省略 ~ 
 
# TYPE  DATABASE        USER            ADDRESS                 METHOD 
 
# "local" is for Unix domain socket connections only 
local   all             all                                     peer 
# IPv4 local connections: 
host    all             all             127.0.0.1/32            ident 
# IPv6 local connections: 
host    all             all             ::1/128                 ident 
# Allow replication connections from localhost, by a user with the 
# replication privilege. 
#local   replication     postgres                                peer 
#host    replication     postgres        127.0.0.1/32            ident 
#host    replication     postgres        ::1/128                 ident 
-bash-4.2$

 

 

pg_hba.conf ファイルの例

■ローカルからアクセスされる場合

host testdb testuser 192.168.1.0/24 trust

ネットワーク経由で「192.168.1.0/24」セグメントから testdb データベースに testuser アカウントでアクセスしてきた場合は、パスワード認証なしでアクセスできます。

 

 

 

 

 

PostgreSQL シリーズ

今まで学習した PostgreSQL の技術をシリーズとしてまとめました。

 

【PostgreSQL】PostgreSQL の特徴と基本【Part.1】

 

【PostgreSQL】【正規化】リレーショナルデータベース(RDMS)の基本【Part.2】

 

【PostgreSQL】PostgreSQL のインストールと初期設定【Part.3】

 

【PostgreSQL】PostgreSQL の標準付属ツールの説明とコマンド手順【Part.4】

 

【PostgreSQL】PostgreSQL の設定ファイル(postgresql.conf、pg_hba.conf)の解説【Part.5】

 

【PostgreSQL】PostgreSQL のバックアップ手順とリストア手順【Part.6】

 

【PostgreSQL】PostgreSQL の運用管理(ユーザー管理、バキューム)【Part.7】

 

【PostgreSQL】PostgreSQL の基本的な SQL文 とオブジェクトについて【Part.8】

 

【PostgreSQL】PostgreSQL の組み込み関数、ユーザー定義関数、演算子について【Part.9】

 

【PostgreSQL】PostgreSQL のトランザクションについて【Part.10】

 

【PostgreSQL】SQL文【Part.11】

 

【PostgreSQL】テーブル設計(データ型、制約)【Part.12】

 

 

 

Posted by 100%レンタルサーバーを使いこなすサイト管理人

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください