Android

วิธีการติดตั้ง postgresql บนเดเบียน 9

Jan Karremans - Comparing PostgreSQL to Oracle. The best kept secrets to success

Jan Karremans - Comparing PostgreSQL to Oracle. The best kept secrets to success

สารบัญ:

Anonim

PostgreSQL เป็นที่รู้จักกันง่าย ๆ ว่า Postgres เป็นระบบจัดการฐานข้อมูลเชิงวัตถุ - เชิงสัมพันธ์แบบโอเพ่นซอร์ส PostgreSQL มีคุณสมบัติขั้นสูงมากมายเช่นการสำรองข้อมูลออนไลน์, การกู้คืนเวลา, ธุรกรรมที่ซ้อนกัน, การสืบค้น SQL และ JSON, การควบคุมหลายรุ่นพร้อมกัน (MVCC), การจำลองแบบอะซิงโครนัสและอื่น ๆ

ในบทช่วยสอนนี้เราจะแสดงวิธีการติดตั้ง PostgreSQL บน Debian 9 และสำรวจพื้นฐานของการบริหารฐานข้อมูลพื้นฐาน

ข้อกำหนดเบื้องต้น

ก่อนที่จะดำเนินการกับบทช่วยสอนนี้ตรวจสอบให้แน่ใจว่าผู้ใช้ที่คุณเข้าสู่ระบบในขณะที่มีสิทธิ์ sudo

การติดตั้ง PostgreSQL

ในขณะที่เขียนบทความนี้ PostgreSQL รุ่นล่าสุดพร้อมใช้งานจากที่เก็บ Debian คือ PostgreSQL เวอร์ชัน 9.6

ในการติดตั้ง PostgreSQL บนเซิร์ฟเวอร์ Debian ของคุณให้ทำตามขั้นตอนต่อไปนี้:

  1. เริ่มต้นด้วยการอัพเดตดัชนีแพ็คเกจโลคัล:

    sudo apt update

    ติดตั้งเซิร์ฟเวอร์ PostgreSQL และแพ็คเกจ Contrib PostgreSQL ซึ่งมีคุณสมบัติเพิ่มเติมสำหรับฐานข้อมูล PostgreSQL:

    sudo apt install postgresql postgresql-contrib

    เมื่อการติดตั้งเสร็จสมบูรณ์บริการ PostgreSQL จะเริ่มต้นโดยอัตโนมัติ หากต้องการตรวจสอบการติดตั้งเราจะเชื่อมต่อกับเซิร์ฟเวอร์ฐานข้อมูล PostgreSQL โดยใช้ยูทิลิตี้ psql และพิมพ์รุ่นเซิร์ฟเวอร์:

    sudo -u postgres psql -c "SELECT version();"

    ผลลัพธ์จะมีลักษณะดังนี้:

    version ----------------------------------------------------------------------------------------------------------- PostgreSQL 9.6.10 on x86_64-pc-linux-gnu, compiled by gcc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516, 64-bit (1 row)

Psql เป็นโปรแกรมเทอร์มินัลแบบโต้ตอบที่ช่วยให้คุณสามารถโต้ตอบกับเซิร์ฟเวอร์ PostgreSQL

บทบาทของ PostgreSQL และวิธีการรับรองความถูกต้อง

PostgreSQL จัดการสิทธิ์การเข้าถึงฐานข้อมูลโดยใช้แนวคิดของบทบาท บทบาทสามารถแสดงถึงผู้ใช้ฐานข้อมูลหรือกลุ่มผู้ใช้ฐานข้อมูล

PostgreSQL สนับสนุนวิธีการรับรองความถูกต้องจำนวนมาก วิธีที่ใช้กันมากที่สุดคือ:

  • ความน่าเชื่อถือ - ด้วยวิธีนี้บทบาทสามารถเชื่อมต่อได้โดยไม่ต้องใช้รหัสผ่านตราบใดที่เกณฑ์ที่กำหนดไว้ใน pg_hba.conf เป็นไปตามนั้นรหัสผ่าน - บทบาทสามารถเชื่อมต่อได้โดยระบุรหัสผ่าน รหัสผ่านสามารถเก็บเป็น scram-sha-256 md5 และ password (ข้อความที่ชัดเจน) รหัส - วิธีนี้รองรับเฉพาะการเชื่อมต่อ TCP / IP ทำงานโดยการได้รับชื่อผู้ใช้ระบบปฏิบัติการของไคลเอ็นต์พร้อมกับการแมปชื่อผู้ใช้ที่เป็นตัวเลือก - เหมือน Ident แต่รองรับเฉพาะการเชื่อมต่อภายในเท่านั้น

การพิสูจน์ตัวตนไคลเอ็นต์ PostgreSQL ถูกกำหนดในไฟล์คอนฟิกูเรชันชื่อ pg_hba.conf โดยค่าเริ่มต้นสำหรับการเชื่อมต่อท้องถิ่น PostgreSQL ถูกตั้งค่าให้ใช้วิธีการรับรองความถูกต้องแบบเพียร์

ผู้ใช้ postgres จะถูกสร้างขึ้นโดยอัตโนมัติเมื่อคุณติดตั้ง PostgreSQL ผู้ใช้นี้เป็น superuser ของอินสแตนซ์ PostgreSQL และเทียบเท่ากับผู้ใช้รูทของ MySQL

ในการเข้าสู่เซิร์ฟเวอร์ PostgreSQL ในฐานะผู้ใช้ postgres ก่อนอื่นคุณต้องเปลี่ยนไปใช้ผู้ใช้ postgres จากนั้นคุณสามารถเข้าถึงพรอมต์ PostgreSQL โดยใช้ยูทิลิตี psql :

sudo su - postgres psql

จากที่นี่คุณสามารถโต้ตอบกับอินสแตนซ์ PostgreSQL ของคุณ หากต้องการออกจากประเภทเชลล์ PostgreSQL:

\q

คุณสามารถใช้คำสั่ง sudo เพื่อเข้าถึงพรอมต์ PostgreSQL โดยไม่ต้องสลับผู้ใช้:

sudo -u postgres psql

โดยทั่วไปผู้ใช้ postgres จะใช้เฉพาะจากโฮสต์ท้องถิ่นและไม่แนะนำให้ตั้งรหัสผ่านสำหรับผู้ใช้นี้

การสร้างบทบาทและฐานข้อมูล PostgreSQL

คุณสามารถสร้างบทบาทใหม่จากบรรทัดคำสั่งโดยใช้คำสั่ง createuser เฉพาะผู้ใช้ระดับสูงและบทบาทที่มีสิทธิ์ CREATEROLE สามารถสร้างบทบาทใหม่

ในตัวอย่างต่อไปนี้เราจะสร้างบทบาทใหม่ชื่อ john ฐานข้อมูลชื่อ johndb และให้สิทธิ์บนฐานข้อมูล

  1. สร้างบทบาท PostgreSQL ใหม่

    คำสั่งต่อไปนี้จะสร้างบทบาทใหม่ชื่อ john:

    sudo su - postgres -c "createuser john"

    สร้างฐานข้อมูล PostgreSQL ใหม่

    สร้างฐานข้อมูลใหม่ชื่อ johndb โดยใช้คำสั่ง createdb :

    sudo su - postgres -c "createdb johndb"

    ให้สิทธิ์พิเศษ

    หากต้องการให้สิทธิ์แก่ผู้ใช้ john ในฐานข้อมูลที่เราสร้างในขั้นตอนก่อนหน้านี้ให้เชื่อมต่อกับเชลล์ PostgreSQL:

    sudo -u postgres psql

    และเรียกใช้แบบสอบถามต่อไปนี้:

    grant all privileges on database johndb to john;

เปิดใช้งานการเข้าถึงระยะไกลไปยังเซิร์ฟเวอร์ PostgreSQL

โดยค่าเริ่มต้น PostgreSQL เซิร์ฟเวอร์จะฟังเฉพาะที่บนโลคัลอินเตอร์เฟส 127.0.0.1 หากต้องการเปิดใช้งานการเข้าถึงระยะไกลไปยังเซิร์ฟเวอร์ PostgreSQL ของคุณให้เปิดไฟล์กำหนดค่า postgresql.conf และเพิ่ม listen_addresses = '*' ในส่วน CONNECTIONS AND AUTHENTICATION

sudo vim /etc/postgresql/9.6/main/postgresql.conf /etc/postgresql/9.6/main/postgresql.conf

#------------------------------------------------------------------------------ # CONNECTIONS AND AUTHENTICATION #------------------------------------------------------------------------------ # - Connection Settings - listen_addresses = '*' # what IP address(es) to listen on;

บันทึกไฟล์และรีสตาร์ทเซอร์วิส PostgreSQL ด้วย:

sudo service postgresql restart

ตรวจสอบการเปลี่ยนแปลงด้วยยูทิลิตี้ ss :

ss -nlt | grep 5432

LISTEN 0 128 0.0.0.0:5432 0.0.0.0:* LISTEN 0 128:5432:*

ดังที่คุณเห็นจากผลลัพธ์ข้างบนเซิร์ฟเวอร์ PostgreSQL กำลังรับฟังบนอินเตอร์เฟสทั้งหมด (0.0.0.0)

ขั้นตอนสุดท้ายคือการกำหนดค่าเซิร์ฟเวอร์ให้ยอมรับการเชื่อมต่อระยะไกลโดยการแก้ไขไฟล์ pg_hba.conf

ด้านล่างนี้คือตัวอย่างบางส่วนที่แสดงกรณีการใช้ที่แตกต่างกัน:

/etc/postgresql/9.6/main/pg_hba.conf

# TYPE DATABASE USER ADDRESS METHOD # The user jane will be able to access all databases from all locations using a md5 password host all jane 0.0.0.0/0 md5 # The user jane will be able to access only the janedb from all locations using a md5 password host janedb jane 0.0.0.0/0 md5 # The user jane will be able to access all databases from a trusted location (192.168.1.134) without a password host all jane 192.168.1.134 trust

ข้อสรุป

คุณได้เรียนรู้วิธีการติดตั้งและกำหนดค่า PostgreSQL บนเซิร์ฟเวอร์ Debian 9 ของคุณ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับหัวข้อนี้ดูเอกสารประกอบของ PostgreSQL

ฐานข้อมูล debian postgresql