R, Python, DB 備忘録

データベースとか、jupyter(Python)、Rとか色々

PostgreSQLの設定

postgresql.conf

作業用メモリの割当

shared_buffers = 512MB			# min 128kB
work_mem = 1GB				# min 64kB
maintenance_work_mem = 1GB		# min 1MB

接続許可

listen_addresses = '*'

詳細は pg_hba.conf で設定

pg_hba.conf

  • pg_hba.confは1行で1レコードを構成しており、1行のフォーマットは以下のとおりである。
    KIND DATABASE USER CIDR-ADDRESS METHOD
    1. KIND
      「local」「host」「hostssl」「hostnossl」のいずれか。localはUNIXドメインソケット経由の接続、hostはTCP/IP経由の接続、hostsslはSSL経由の接続、hostnosslはSSLを使用しない接続を意味する。
    2. DATABASE
      接続を許可したいデータベース名を指定。「all」とすると全てのデータベースを意味する。複数のデータベース名を指定したい場合は、カンマで区切る。
    3. USER
      接続を許可するユーザ名を指定。「all」とすると全てのユーザを意味する。ユーザ名の前に「+」を付けるとグループ名を指定したことになる。複数のユーザ名を指定したい場合は、カンマで区切る。
    4. CIDR-ADDRESS
      KINDがlocal以外のときに指定する。接続を許可するクライアントのIPアドレスやネットワークアドレスを指定する。
      • 例1)192.168.0.11/32・・・192.168.0.11からの接続のみを許可する
      • 例2)192.168.0.0/24・・・IPアドレスが192.168.0.xであるクライアントのみを許可する
      • 例3)0.0.0.0/0・・・任意のIPアドレスのクライアントを許可する
    5. METHOD
      ユーザの認証方式を指定する。代表的なものは以下のとおり。
      • trust・・・認証なし。無条件に接続を許可する。
      • reject・・・無条件に接続を拒否する。特定のホストやネットワークからの接続を拒否する際に使用
      • md5・・・md5を利用したパスワード認証。パスワードを指定していないユーザは接続できない。
      • password・・・パスワード認証を行うが、BASIC認証のため、パスワードがそのままネットワークを流れてしまう。