የርቀት postgresql ጠረጴዛ ጋር ግንኙነት መፍጠር. ወደ subd ግንኙነት. የመረጃ ቋቱ የመዳረሻ መብቶችን በማዘጋጀት ላይ

0

ተደናግጃለሁ። መሰረት አለን። postgres ውሂብ 9.2, ይህም ለተወሰነ ጊዜ እየተጠቀምንበት ነው. አሁን ከአውታረ መረቡ ውጭ ከእሱ ጋር መገናኘት መቻል አለብን.

ስለዚህ የውጭውን IP አድራሻ እናዋቅራለን እና ከ 5432 ወደብ ጋር መገናኘት የምንችለውን እንሞክራለን የርቀት አስተናጋጅበቴሌኔት. ስለዚህ ይህ ያረጋግጣል የአውታረ መረብ ግንኙነትይሰራል, ፋየርዎል, ወዘተ ሁሉም ጥሩ.

ከዚህ ጋር ለመገናኘት ስሞክር፡-
PSQL -h db.host.com -d dbname -p 5432 -U ተጠቃሚ

እመለሳለሁ Psql፡ አገልጋዩ በድንገት ግንኙነቱን ዘጋው።

ያንን አጣራሁ
listen_addresses = "*" በ postgresql.conf ተቀናብሯል።

እና በpg_hba.conf ውስጥ የሚነበብ መስመር አለን (ለሙከራ ዓላማዎች ብቻ)
ሁሉንም ማስተናገድ 0.0.0.0/0 md5

እና የተመረጠውን ለውጥ ለመፈተሽ የውሂብ ጎታውን እንደገና ጫንኩት።
ስለዚህ ይህ ከማንኛውም ምንጭ ግንኙነቶችን መፍቀድ አለበት.

በመረጃ ቋቱ አገልጋይ ላይ ያለው የpsql ስሪት 9.2.14 ነው፣ እና በደንበኛው ላይ 9.2.13 ነው።

ማንኛውም ጥቆማዎች ወይም ሃሳቦች?

  • 1 መልስ
  • መደርደር፡

    እንቅስቃሴ

1

ተጨማሪ መረጃ ለማግኘት ጥቂት ነገሮችን መሞከር እፈልጋለሁ፡-

    ሲገናኝ እዚያ ምን እንደሚፈጠር ለማየት Postgres ጅራት ወደ አገልጋዩ ይግቡ።

    psql --versionን ብዙ ወይም ያነሰ ከአገልጋዩ ስሪት ጋር እንደሚዛመድ ለማረጋገጥ ያሂዱ። (ይህንን እንዳደረጋችሁት አይቻለሁ፣ ግን ለትውልድ ትቼዋለሁ።)

    ምን ያህል ርቀት እንደሚወድቅ ለማየት strace psql ን አሂድ።

ይህ አሁንም ለእኔ የአውታረ መረብ ችግር ይመስላል። ምን ተፈጠረ telnet ትዕዛዝከማን ጋር ነው የምትሰራው? "ውጫዊ IP" እርስዎ በAWS ላይ እንደሚሰሙት አይነት ነው። ቅንብሮች የርቀት መዳረሻወደ VPC ብዙ እርምጃዎችን ይወስዳል። ለውጫዊ ክፍት የሆኑ ሌሎች አገልግሎቶች አሉዎት?

እንዲሁም የ Postgres አገልጋይን በመዝጋት እና በ 5432 ላይ ለማዳመጥ ncን በመጠቀም መላ መፈለግ ይችላሉ ። ከዚያ telnet እና ውሂብ ወደ ኋላ እና ወደ ፊት መላክ ይችሉ እንደሆነ ይመልከቱ።

1

ጳውሎስ፣ ለአስተያየቶቹ አመሰግናለሁ። ዘረጋሁ እና እትሞቹን ፈትሻለሁ። እና ልክ ነህ፣ ከAWS ጋር ለመገናኘት ሞከርኩ። AWS የሚያትመውን የአይፒ-2 ክልሎችን መዳረሻ ብቻ ለመፍቀድ በሎድ ሚዛን ውስጥ እየተጠቀምኩበት የነበረው ደረጃ ነበር። Irileን ሳሰናክል ወዲያውኑ መገናኘት ችያለሁ። የ EC2 ምሳሌዬን ይፋዊ አይፒን ስለመረመርኩ እና በCIDR ማሳወቂያ በኩል በ irule ውስጥ ስለተዘረዘረ ይህ የመተማመኛ አመክንዮ መሆን አለበት። -

የስርዓት አስተዳደር

ይህ ልጥፍ ነው። አጭር መመሪያዎችለጀማሪዎች, PostgreSQL ን ለመጀመሪያ ጊዜ ለጫኑ. በPostgreSQL ለመጀመር የሚያስፈልግዎ መረጃ ይህ ነው።

ከዲቢኤምኤስ ጋር በመገናኘት ላይ

የመጀመሪያው ነገር ወደ PostgreSQL መዳረሻ ማግኘት ነው፣ እንደ ሱፐር ተጠቃሚ መዳረሻ።
የማረጋገጫ ቅንጅቶች በpg_hba.conf ፋይል ውስጥ ይገኛሉ።
  1. የአካባቢ ሁሉም postgres እኩዮችህ
ይህ መስመር የሚያመለክተው የፖስትግሬስ ተጠቃሚ ከየትኛውም የሀገር ውስጥ PostgreSQL ዳታቤዝ ጋር በሶኬት በኩል መገናኘት ይችላል። የይለፍ ቃል ማስገባት አያስፈልግም, ስርዓተ ክወናው የተጠቃሚውን ስም ያስተላልፋል, እና ለማረጋገጫ ጥቅም ላይ ይውላል.
እንገናኝ፡-
  1. $ sudo -u postgres psql postgres postgres
በአውታረ መረቡ ላይ ለመገናኘት፣ መስመሩን ወደ pg_hdba.conf ማከል አለብህ፡-
  1. # ዳታባሴ የተጠቃሚ አድራሻ ዘዴ
  2. hostssl ሁሉም 0.0.0.0/0 md5
የማረጋገጫ ዘዴ md5ለመገናኘት የይለፍ ቃል ማስገባት አለብዎት ማለት ነው. የpsql ኮንሶል በተደጋጋሚ የሚጠቀሙ ከሆነ ይህ በጣም ምቹ አይደለም። የሆነ ነገር በራስ ሰር መስራት ከፈለጉ, መጥፎው ዜና psql የይለፍ ቃል እንደ ክርክር አይቀበልም. እነዚህን ችግሮች ለመፍታት ሁለት መንገዶች አሉ-ተገቢውን የአካባቢ ተለዋዋጭ ማቀናበር እና የይለፍ ቃሉን በልዩ ፋይል.pgpass ውስጥ ማከማቸት.

የ PGPASSWORD አካባቢ ተለዋዋጭን በማዘጋጀት ላይ

ይህን ዘዴ አለመጠቀም የተሻለ እንደሆነ ወዲያውኑ እናገራለሁ, ምክንያቱም አንዳንዶቹ ስርዓተ ክወናዎችእንዲመለከቱ ይፍቀዱ ተራ ተጠቃሚዎች የአካባቢ ተለዋዋጮችበ ps. ነገር ግን ከፈለጉ በተርሚናል ውስጥ መጻፍ ያስፈልግዎታል-
  1. ወደ ውጪ ላክ PGPASSWORD=mypasswd
ተለዋዋጭው አሁን ባለው ክፍለ ጊዜ ውስጥ ይገኛል። ለሁሉም ክፍለ ጊዜዎች ተለዋዋጭ ማቀናበር ከፈለጉ፣ መስመሩን ከምሳሌው ወደ .bashrc ወይም .bash_profile ፋይል ማከል ያስፈልግዎታል።

የይለፍ ቃሉን በpgpass ፋይል ውስጥ በማስቀመጥ ላይ

ስለ ሊኑክስ እየተነጋገርን ከሆነ ፋይሉ በ$HOME (/ቤት/የተጠቃሚ ስም) ውስጥ መቀመጥ አለበት። የመፃፍ እና የማንበብ መብቶች ባለቤት (0600) ብቻ መሆን አለባቸው። በፋይሉ ላይ እንደዚህ ያሉ መስመሮችን መጻፍ ያስፈልግዎታል:
  1. የአስተናጋጅ ስም: ወደብ: የውሂብ ጎታ: የተጠቃሚ ስም: የይለፍ ቃል
በመጀመሪያዎቹ አራት መስኮች "*" መጻፍ ይችላሉ, ይህም ማለት ምንም ማጣሪያ (ሙሉ ምርጫ) ማለት አይደለም.

የእገዛ መረጃ በማግኘት ላይ

\? - ሁሉንም ነገር ይሰጣል የሚገኙ ትዕዛዞችከአጭር መግለጫቸው ጋር
\h - ሁሉንም የሚገኙትን መጠይቆች ዝርዝር ያሳያል ፣
\h ፍጠር - ለአንድ የተወሰነ ጥያቄ እርዳታ ይሰጣል።

የ DBMS የተጠቃሚ አስተዳደር

የ PostgreSQL ተጠቃሚዎችን ዝርዝር እንዴት ማግኘት ይቻላል?
  1. ወይም የpg_user ሰንጠረዥን መጠየቅ ትችላለህ።

ይምረጡ * ከ pg_user;

አዲስ የPostgreSQL ተጠቃሚ መፍጠር ቅርፊት
  1. psql ይህንን የ CREATE ትዕዛዝ በመጠቀም ሊከናወን ይችላል.
የተጠቃሚ ስም በይለፍ ቃል "የይለፍ ቃል" ይፍጠሩ;
  1. ወይም ተርሚናል መጠቀም ይችላሉ።
ፈጣሪ ተጠቃሚ -S -D -R -P የተጠቃሚ ስም

የይለፍ ቃል እንዲያስገቡ ይጠየቃሉ።

  1. የተጠቃሚውን የይለፍ ቃል መለወጥ

የተጠቃሚ ስም በይለፍ ቃል "የይለፍ ቃል" ይቀይሩ;

የተጠቃሚ ሚናዎችን መለወጥ
  1. ተጠቃሚው የውሂብ ጎታዎችን እንዲፈጥር ፍቃድ ለመስጠት የሚከተለውን መጠይቅ ያሂዱ፡-

የሚና የተጠቃሚ ስም በ CRATEDB ;

የውሂብ ጎታ አስተዳደር
  1. በpsql ተርሚናል ውስጥ የውሂብ ጎታዎችን ዝርዝር በማሳየት ላይ፡ ከሊኑክስ ተርሚናል ተመሳሳይ፡-
psql -l
  1. ከpsql (PostgreSQL ተርሚናል) የውሂብ ጎታ መፍጠር
ዳታባሴ dbname OWNER dbadmin ፍጠር; ፍጥረትአዲስ መሠረት
  1. ተርሚናልን በመጠቀም መረጃ፡-

የተፈጠረውb -O የተጠቃሚ ስም dbname;

የመረጃ ቋቱ የመዳረሻ መብቶችን ማዋቀር ተጠቃሚው የውሂብ ጎታው ባለቤት ከሆነ, እሱ ሁሉም መብቶች አሉት. ነገር ግን ለሌላ ተጠቃሚ መዳረሻ መስጠት ከፈለጉ የ GRNT ትዕዛዙን በመጠቀም ይህንን ማድረግ ይችላሉ። ከታች ያለው ጥያቄ ተጠቃሚው ከመረጃ ቋቱ ጋር እንዲገናኝ ያስችለዋል። ግን ስለ አትርሳየማዋቀር ፋይል
  1. pg_hba.conf፣ እንዲሁም ተገቢ የግንኙነት ፈቃዶች ሊኖሩት ይገባል።

በ DATABASE ላይ ግንኙነት ይስጡ dbname ለ dbadmin; PostgreSQL ተሻጋሪ ነገር-ግንኙነት ዲቢኤምኤስ ክፍት ነው።ምንጭ ኮድ . ይህ ጽሑፍ PostgreSQL እንዴት እንደሚጭን ያሳየዎታልኡቡንቱ ሊኑክስ , ከእሱ ጋር ይገናኙ እና ጥንድ ያከናውኑቀላል የ SQL ጥያቄዎች

, እንዲሁም እንዴት መጠባበቂያዎችን ማዘጋጀት እንደሚቻል.

በኡቡንቱ 12.10 ላይ PostgreSQL 9.2 ን ለመጫን የሚከተሉትን ትዕዛዞችን ያሂዱ።
sudo apt- add-repository ppa:pitti/postgresql
sudo apt-get update

sudo apt-get install postgresql-9.2

ከዲቢኤምኤስ ጋር በሼል በኩል ለመስራት እንሞክር፡-

sudo -u postgres psql

የሙከራ ዳታቤዝ እና የሙከራ ተጠቃሚ እንፍጠር፡-
DATABASE የሙከራ_ውሂብ ጎታ ይፍጠሩ;
USER test_user በይለፍ ቃል "qwerty" ፍጠር፤

ሁሉንም በ DATABASE test_database ለሙከራ_ተጠቃሚ ስጡ፤

ከቅርፊቱ ለመውጣት ትዕዛዙን ያስገቡ \q .

psql -h localhost test_database test_user

አዲስ ጠረጴዛ እንፍጠር፡-

SEQUENCE የተጠቃሚ_መታወቂያዎችን ፍጠር፤
የጠረጴዛ ተጠቃሚዎችን ፍጠር (
መታወቂያ INTEGER ቀዳሚ ቁልፍ ነባሪ NEXTVAL ("የተጠቃሚ_መታወቂያዎች")፣
መግባት CHAR(64)፣
የይለፍ ቃል CHAR (64));

እባኮትን ያስተውሉ፣ እንደሌሎች ዲቢኤምኤስዎች፣ PostgreSQL የራስ-ጭማሪ ንብረቱ ያላቸው አምዶች የሉትም። በምትኩ, Postgres ቅደም ተከተሎችን ይጠቀማል. በርቷል በአሁኑ ጊዜየቀጣይቫል ተግባርን በመጠቀም ማግኘት እንደምንችል ማወቅ በቂ ነው። ልዩ ቁጥሮችለተወሰነ ቅደም ተከተል:

NEXTVAL ("user_ids") ይምረጡ;

ለተጠቃሚዎች ሰንጠረዥ የመታወቂያ መስክ ነባሪ እሴት በማዘጋጀት NEXTVAL("የተጠቃሚ_መታወቂያዎች"), auto_increment የሚሰጠውን ተመሳሳይ ውጤት አግኝተናል። በሠንጠረዡ ላይ አዳዲስ መዝገቦችን ስንጨምር መታወቂያውን መግለፅ የለብንም ምክንያቱም ልዩ መታወቂያ በራስ ሰር ይፈጠራል። በርካታ ጠረጴዛዎች ተመሳሳይ ቅደም ተከተል መጠቀም ይችላሉ. በዚህ መንገድ በእነዚህ ሰንጠረዦች ውስጥ ያሉት አንዳንድ መስኮች እሴቶች እንዳይደራረቡ ዋስትና እንሰጣለን. ከዚህ አንጻር፣ ቅደም ተከተሎች ከአውቶ_ጭማሪ የበለጠ ተለዋዋጭ ናቸው።

አንድ አይነት ሠንጠረዥ አንድ ትዕዛዝ ብቻ በመጠቀም ሊፈጠር ይችላል፡-

የጠረጴዛ ተጠቃሚዎችን ይፍጠሩ2 (
መታወቂያ ተከታታይ ዋና ቁልፍ፣
መግባት CHAR(64)፣
የይለፍ ቃል CHAR (64));

በዚህ አጋጣሚ የመታወቂያው መስክ ቅደም ተከተል በራስ-ሰር ይፈጠራል።

አሁን \d የሚለውን ትዕዛዝ በመጠቀም ሁሉንም የሚገኙትን ሰንጠረዦች ዝርዝር ማየት ይችላሉ, እና \d ተጠቃሚዎችን በመጠቀም የተጠቃሚዎችን ሰንጠረዥ መግለጫ ማየት ይችላሉ. የሚፈልጉትን መረጃ ካላገኙ ከ \d ይልቅ \d+ ይሞክሩ። የውሂብ ጎታዎችን ዝርዝር በ \l ትዕዛዝ ማግኘት እና በ \c dbname ትዕዛዝ ወደ አንድ የተወሰነ የውሂብ ጎታ መቀየር ይችላሉ. የትዕዛዝ እገዛን ለማሳየት \\ ይበሉ?

. በ PostgreSQL ውስጥ በነባሪነት የሰንጠረዥ እና የአምድ ስሞች እንደሚጣሉ ልብ ማለት ያስፈልጋልንዑስ ሆሄያት

. ይህን ባህሪ የማይፈልጉ ከሆነ፣ ድርብ ጥቅሶችን መጠቀም ይችላሉ፡-

ጠረጴዛ ፍጠር "ሌላ ጠረጴዛ" ("someValue" VARCHAR (64));

ከዚህ ዲቢኤምኤስ ጋር መስራት ሲጀምር ችግር የሚፈጥር ሌላው የPosgreSQL ባህሪ “schemas” ተብሎ የሚጠራው ነው። ንድፍ ለሠንጠረዦች እንደ ስም ቦታ ያለ ነገር ነው፣ እንደ በመረጃ ቋት ውስጥ ሠንጠረዦች ያለው ማውጫ።

ንድፍ መፍጠር;

የ SCHEMA ቦታ ማስያዣዎችን ይፍጠሩ;

ወደ እቅድ ቀይር፡

የ \dn ትዕዛዝን በመጠቀም የነባር እቅዶችን ዝርዝር ማየት ይችላሉ። ነባሪው እቅድ ይፋዊ ተብሎ ተሰይሟል። በመርህ ደረጃ, ስለ እቅዶች መኖር ሳያውቁ PostgreSQL በተሳካ ሁኔታ መጠቀም ይችላሉ. ነገር ግን ከውርስ ኮድ ጋር ሲሰሩ እና በአንዳንድ ጠርዝ ጉዳዮች ስለ ንድፎችን ማወቅ በጣም ጠቃሚ ሊሆን ይችላል.

ያለበለዚያ፣ ከPostgreSQL ጋር መስራት ከማንኛውም ሌላ ተዛማጅ ዲቢኤምኤስ ጋር ከመስራት ብዙም የተለየ አይደለም።

ወደ ተጠቃሚዎች አስገባ (መግቢያ፣ይለፍ ቃል)
ቫልዩስ ("fiskon", "123456");
ከተጠቃሚዎች * ይምረጡ;

አሁን ከሌላ ማሽን ወደ Postgres ለመገናኘት ከሞከሩ አይሳካላችሁም፡-

psql -h 192.168.0.1 test_database test_user

Psql: ከአገልጋይ ጋር መገናኘት አልተቻለም ግንኙነት ተቀባይነት አላገኘም።
አገልጋዩ በአስተናጋጅ "192.168.0.1" እየሰራ እና እየተቀበለ ነው።
TCP/IP ግንኙነቶች በፖርት 5432?

ይህንን ለማስተካከል መስመሩን ያክሉ፡-

listen_addresses = "localhost,192.168.0.1"

... ወደ /etc/postgresql/9.2/main/postgresql.conf ፋይልም እንዲሁ።