Pagsisimula sa PostgreSQL. Pagbabago ng password ng user. Pag-alis ng mga karapatan ng gumagamit

Pagkatapos mong ma-download English na database ng keyword, kailangan mong mag-install ng database server nang lokal at matutunan kung paano gumawa ng mga seleksyon. Upang gawin ito, nag-aalok kami ng sunud-sunod na mga tagubilin.

MAHALAGA: Kung wala kang karanasan sa pagtatrabaho sa mga database o ang karanasang ito ay minimal, lubos naming inirerekomenda na magsimula sa isang minimum na base upang maisagawa ang proseso.

Ang mga screenshot sa mga tagubilin ay nagpapakita ng pagtatrabaho sa isang minimum na base, at naaayon ang oras ay ipinahiwatig para sa isang minimum na base, ngunit ang pagtatrabaho sa isang pinalawig at maximum na base ay mas magtatagal.

Pag-download at pag-install ng PostgreSQL database server

http://www.postgresql.org/download/windows/

1. I-download libreng programa para sa base Data ng PostgreSQL mula sa opisyal na website http://www.postgresql.org/
download/windows/

http://www.enterprisedb.com/products-services-training/pgdownload#windows:

Pagkatapos ay sundin ang link sa detalyadong pahina mga bersyon ng database para sa iba't ibang OS: http://www.enterprisedb.com/
produkto-serbisyo-pagsasanay/
pgdownload#windows :


MAHALAGA: Inirerekumenda namin ang pag-install ng database server at paggawa ng mga pagpipilian sa 64-bit system na may hindi bababa sa 6 GB RAM kapag nagtatrabaho sa minimal at pinalawig na mga database. Sa kaso ng isang maximum na base, ang inirerekomendang halaga ng RAM ay mula sa 32 GB, kanais-nais din mabilis na disk. Sa isang computer na may 32-bit system, ang proseso ng pag-import ng data, pag-index nito, at aktwal na pagkuha nito ay aabutin ng napakatagal, kaya mas mainam na iwanan ang ideyang ito.

Kung hindi mo alam ang bit depth ng iyong OS, maaari mo itong hanapin sa mga katangian ng computer ( kanang pindutan mouse sa item na "Computer", piliin ang "Properties" mula sa menu):


2. I-install ang na-download na database ng PostgreSQL. Sa panahon ng pag-install, halos lahat ay bilang default...


...maliban sa ilang bagay.

3. Simulan ang operasyon ng pag-optimize ng talahanayan sa katulad na paraan:

vacuum "eng_data_table";


Ang pag-optimize ay tumatagal sa average na 15-30 minuto.

Tandaan: Nagsasagawa kami ng mga kahilingan nang paisa-isa, binubura muna ang mga nakaraang kahilingan na naisakatuparan na. Maaari mong malaman kung nakumpleto o hindi ang kahilingan mula sa mensahe sa Output Pane sa ibaba (lumalabas ito kapag nakumpleto na ang kahilingan), at maaari mong malaman ang oras ng pagpapatupad sa status bar sa ibaba ng window.

Pangangasiwa ng Sistema

Ang post na ito ay maikling tagubilin para sa mga nagsisimula, para sa mga nag-install ng PostgreSQL sa unang pagkakataon. Nandito na ang lahat kinakailangang impormasyon upang makapagsimula sa PostgreSQL.

Pagkonekta sa DBMS

Ang unang bagay na dapat gawin ay upang makakuha ng access sa PostgreSQL, access bilang isang superuser.
Ang mga setting ng pagpapatunay ay matatagpuan sa pg_hba.conf file.
  1. lokal lahat ng mga kapantay ng postgres
Ang linyang ito ay nagpapahiwatig na ang postgres user ay maaaring kumonekta sa anumang lokal na database ng PostgreSQL sa pamamagitan ng isang socket. Hindi na kailangang magpasok ng password; ipapadala ng operating system ang username, at gagamitin ito para sa pagpapatunay.
Kumonekta tayo:
  1. $ sudo -u postgres psql postgres postgres
Upang makakonekta sa network, kailangan mong idagdag ang linya sa pg_hdba.conf:
  1. # TYPE DATABASE USER ADDRESS METHOD
  2. hostsl lahat lahat 0.0.0.0/0 md5
Paraan ng pagpapatunay md5 nangangahulugan na kailangan mong magpasok ng password para kumonekta. Ito ay hindi masyadong maginhawa kung madalas mong gamitin ang psql console. Kung nais mong i-automate ang isang bagay, ang masamang balita ay ang psql ay hindi tumatanggap ng isang password bilang isang argumento. Mayroong dalawang paraan upang malutas ang mga problemang ito: pagtatakda ng naaangkop na variable ng kapaligiran at pag-iimbak ng password sa isang espesyal na file.pgpass.

Ang pagtatakda ng variable na kapaligiran ng PGPASSWORD

Sasabihin ko kaagad na mas mahusay na huwag gamitin ang pamamaraang ito, dahil ang ilan mga operating system hayaan mong tingnan ordinaryong gumagamit mga variable ng kapaligiran sa pamamagitan ng ps. Ngunit kung gusto mo, kailangan mong isulat sa terminal:
  1. i-export ang PGPASSWORD=mypasswd
Magiging available ang variable sa kasalukuyang session. Kung kailangan mong magtakda ng variable para sa lahat ng session, kailangan mong idagdag ang linya mula sa halimbawa sa .bashrc o .bash_profile file

Pag-imbak ng password sa .pgpass file

Kung Linux ang pinag-uusapan, kung gayon ang file ay dapat na matatagpuan sa $HOME (/home/username). Ang may-ari lamang (0600) ang dapat magkaroon ng mga karapatan sa pagsulat at pagbabasa. Kailangan mong magsulat ng mga linyang tulad nito sa file:
  1. hostname:port:database:username:password
Maaari mong isulat ang "*" sa unang apat na field, na nangangahulugang walang pag-filter (buong seleksyon).

Pagkuha ng impormasyon ng tulong

\? - ibibigay ang lahat magagamit na mga utos kasama ang kanilang maikling paglalarawan,
\h - ay magpapakita ng listahan ng lahat ng available na query,
\h CREATE - magbibigay ng tulong para sa isang partikular na kahilingan.

Pamamahala ng gumagamit ng DBMS

Paano makakuha ng isang listahan ng mga gumagamit ng PostgreSQL?
  1. O maaari mong i-query ang pg_user table.

PUMILI * MULA sa pg_user ;

Paglikha ng bagong user ng PostgreSQL Mula sa kabibi
  1. psql ito ay maaaring gawin gamit ang CREATE command.
GUMAWA NG USER username MAY password na "password" ;
  1. O maaari mong gamitin ang terminal.
createuser -S -D -R -P username

Pagbabago ng password ng user

  1. BAGUHIN ANG USER username MAY PASSWORD "password" ;

Pagbabago ng mga tungkulin ng user

Upang bigyan ang user ng pahintulot na lumikha ng mga database, patakbuhin ang sumusunod na query:
  1. ALTER ROLE username MAY CREATEDB ;

Pamamahala ng Database

Pagpapakita ng listahan ng mga database sa psql terminal: Ang parehong mula sa Linux terminal:
  1. psql -l
Paglikha ng database mula sa psql (PostgreSQL Terminal)
  1. GUMAWA NG DATABASE dbname OWNER dbadmin ;
Paglikha bagong base data gamit ang terminal:
  1. nilikhab -O username dbname;

Pag-set up ng mga karapatan sa pag-access sa database

Kung ang gumagamit ay ang may-ari ng database, kung gayon mayroon siyang lahat ng karapatan. Ngunit kung gusto mong magbigay ng access sa ibang user, magagawa mo ito gamit ang GRANT command. Ang query sa ibaba ay magbibigay-daan sa user na kumonekta sa database. Ngunit huwag kalimutan ang tungkol sa configuration file pg_hba.conf, dapat mayroon din itong naaangkop na mga pahintulot sa koneksyon.
  1. MAGBIGAY NG KONEKTA SA DATABASE dbname SA dbadmin ;

1. Pag-install

1.1. Pag-install mula sa opisyal na imbakan

Kung ang pinakabagong magagamit na bersyon ng PostgreSQL ay mahalaga sa iyo (kung hindi, ipinapayo ko sa iyo na mag-isip nang mabuti), pagkatapos ay kailangan mong i-install ito mula sa opisyal PostgreSQL repository. Magagawa ito sa pamamagitan ng pagsunod sa mga opisyal na tagubilin. Pagkatapos, dapat mong i-update ang mga pakete:

$ sudo apt-get update

At i-install ang PostgreSQL gamit ang command:

$ sudo apt-get install postgresql-x.x

  • x.x- kinakailangang bersyon

Ang isang listahan ng lahat ng magagamit na mga bersyon ay maaaring matingnan gamit ang command:

$ sudo apt-cache search postgresql

1.2. Pag-install mula sa OS repository

Ang pag-install ng PostgreSQL mula sa repositoryo ng OS ay ginagawa sa pamamagitan ng pagdaragdag ng dalawang pangunahing pakete:

$ sudo apt-get install postgresql postgresql-contrib

2. PostgreSQL console

Ang lahat ng magagamit na mga operasyon sa mga database at user ay ginagawa mula sa console psql.

2.1. Mag-login sa console

Una kailangan mong mag-log in bilang isang user postgres, ito ay posible lamang sa mga karapatan ugat:

# su - postgres

Gumagamit postgres ay isang uri ng superuser para sa PostgreSQL database. Pagkatapos, mula sa ilalim ng gumagamit postgres maaari kang mag-log in sa console:

O mas madali, mag-log in lang sa console psql sa ilalim ng gumagamit postgres:

$ sudo -u postgres psql

2.2. Pag-alis sa console

Kapag ang lahat ng mga operasyon sa mga user at database ng PostgreSQL ay nakumpleto na sa psql console, hindi agad posible na malaman kung paano ito lalabas. Ang lahat ay napaka-simple dito:

Postgres=#\q

At, kung kinakailangan, iniiwan namin ang gumagamit postgres:

3. Mga gumagamit ng PostgreSQL

3.1. Paglikha ng isang gumagamit

Ang lahat ay medyo simple dito:

# GUMAWA NG USER username MAY PASSWORD "12345";

  • username- bagong user login
  • ‘12345’ - User password. Inilagay sa mga panipi

3.2. Pagtanggal ng user

Ito ay mas simple dito:

# DROP USER username;

  • username- login ng user na kailangang tanggalin.

4. Mga database

Ang lahat ng mga manipulasyon sa database ay ginagawa din sa console psql.

4.1. Paglikha ng isang Database

Ang lahat dito ay pareho sa paggawa ng user:

# GUMAWA NG DATABASE dbname;

4.2. Magtanggal ng database

# DROP DATABASE dbname;
  • dbname- pangalan ng database na tatanggalin

Pakitandaan na tatanggi ang database na tanggalin sa ilang partikular na kaso:

  • Kung may mga user na may karapatan sa database na ito. Bago tanggalin ang database, dapat bawiin ang kanilang mga karapatan. Higit pa tungkol dito mamaya.
  • Kung mayroong kahit isang bukas na session ng koneksyon sa database. Sa kasong ito, ang mga session ay kailangang isara. SA bilang huling paraan, maaari mo lamang ihinto ang mga server na nakikipag-ugnayan sa database na ito sa oras ng pag-alis nito (bagaman may maliit na punto sa pagsisimula sa mga ito pagkatapos tanggalin ang database)

4.3. Pagtatalaga ng mga karapatan sa mga gumagamit

Availability ng database at mga user sa Sistema ng PostgreSQL sa kanyang sarili ay hindi gumagawa ng mga resulta. Para sa tamang operasyon tiyak na gumagamit na may isang tiyak na database, kailangan siyang italaga ng mga karapatan upang gumana dito. Upang gawin ito, patakbuhin ang command:

# IBIGAY ANG LAHAT NG MGA PRIVILEGES SA DATABASE dbname SA username;

  • dbname- pangalan ng database kung saan dapat ibigay ang mga karapatan sa pag-access
  • username- ang pangalan ng user na bibigyan ng mga karapatan tinukoy na base datos

4.4. Pag-alis ng mga karapatan ng gumagamit

Minsan, kinakailangan na baguhin ang gumagamit na namamahala sa database, o bawiin lamang ang mga karapatan para sa kasunod na pagtanggal nito. Inirerekumenda kong huwag pabayaan ang utos na ito at kumilos ayon sa prinsipyong "Ang isang gumagamit ay namamahala ng isang database."

Ang PostgreSQL ay isang cross-platform na object-relational na DBMS na may bukas source code. Ipapakita sa iyo ng artikulong ito kung paano i-install ang PostgreSQL sa Ubuntu Linux, kumonekta dito at magsagawa ng isang pares simpleng mga query sa SQL, pati na rin kung paano mag-set up ng mga backup.

Upang i-install ang PostgreSQL 9.2 sa Ubuntu 12.10, patakbuhin ang mga sumusunod na command:

sudo apt-add-repository ppa:pitti/postgresql
sudo apt-get update
sudo apt-get install postgresql-9.2

Subukan nating magtrabaho kasama ang DBMS sa pamamagitan ng shell:

sudo -u postgres psql

Gumawa tayo ng isang pagsubok na database at isang pagsubok na gumagamit:

GUMAWA NG DATABASE test_database;
GUMAWA NG USER test_user NA MAY password na "qwerty" ;
IBIGAY LAHAT SA DATABASE test_database SA test_user;

Upang lumabas sa shell, ilagay ang command \q .

Ngayon subukan nating magtrabaho kasama ang nilikha na database sa ngalan ng test_user:

psql -h localhost test_database test_user

Gumawa tayo ng bagong talahanayan:

GUMAWA NG SEQUENCE user_id;
GUMAWA NG TABLE na mga user (
id INTEGER PRIMARY KEY DEFAULT NEXTVAL ("user_ids") ,
login CHAR(64) ,
password CHAR(64));

Pakitandaan na, hindi tulad ng ilang iba pang DBMS, ang PostgreSQL ay walang mga column na may auto_increment property. Sa halip, ang Postgres ay gumagamit ng mga sequence. Naka-on sa ngayon sapat na na malaman na gamit ang nextval function na makukuha natin natatanging mga numero para sa isang naibigay na pagkakasunud-sunod:

SELECT NEXTVAL ("user_ids" );

Sa pamamagitan ng pagtatakda ng default na halaga para sa field ng id ng talahanayan ng mga user sa NEXTVAL("user_id"), nakamit namin ang parehong epekto na ibinibigay ng auto_increment. Kapag nagdaragdag ng mga bagong tala sa talahanayan, hindi namin kailangang tukuyin ang id, dahil ang isang natatanging id ay awtomatikong bubuo. Maaaring gumamit ng parehong pagkakasunud-sunod ang maramihang mga talahanayan. Sa ganitong paraan maaari naming ginagarantiya na ang mga halaga ng ilang mga patlang sa mga talahanayan na ito ay hindi magkakapatong. Sa ganitong kahulugan, ang mga pagkakasunud-sunod ay mas nababaluktot kaysa sa auto_increment.

Ang eksaktong parehong talahanayan ay maaaring malikha gamit ang isang utos lamang:

GUMAWA NG TABLE user2 (
id SERIAL PRIMARY KEY ,
login CHAR(64) ,
password CHAR(64));

Sa kasong ito, ang pagkakasunud-sunod para sa field ng id ay awtomatikong nilikha.

Ngayon gamit ang \d command makikita mo ang isang listahan ng lahat ng magagamit na mga talahanayan, at gamit ang \d mga user ay makikita mo ang isang paglalarawan ng talahanayan ng mga user. Kung hindi mo makuha ang impormasyong hinahanap mo, subukan ang \d+ sa halip na \d . Maaari kang makakuha ng listahan ng mga database gamit ang \l command, at lumipat sa isang partikular na database gamit ang \c dbname command. Upang ipakita ang tulong ng command, sabihin ang \?

. Mahalagang tandaan na sa PostgreSQL, bilang default, ang mga pangalan ng talahanayan at column ay na-cast sa maliit na titik

. Kung hindi mo gusto ang pag-uugaling ito, maaari kang gumamit ng mga double quote:

GUMAWA NG TALAAN "isa pang Talahanayan" ("someValue" VARCHAR (64 ) );

Ang isa pang tampok ng PostgreSQL na maaaring magdulot ng mga kahirapan kapag nagsimulang magtrabaho kasama ang DBMS na ito ay ang tinatawag na "schemas". Ang isang schema ay isang bagay tulad ng isang namespace para sa mga talahanayan, tulad ng isang direktoryo na may mga talahanayan sa loob ng isang database.

Paglikha ng schema:

GUMAWA ng mga booking ng SCHEMA;

Lumipat sa scheme:

Maaari mong tingnan ang isang listahan ng mga umiiral nang scheme gamit ang command na \dn. Ang default na schema ay pinangalanang pampubliko. Sa prinsipyo, matagumpay mong magagamit ang PostgreSQL nang hindi nalalaman ang tungkol sa pagkakaroon ng mga schema. Ngunit kapag nagtatrabaho sa legacy code, at sa ilang mga gilid na kaso, ang pag-alam tungkol sa mga schema ay maaaring maging lubhang kapaki-pakinabang.

Kung hindi, ang pagtatrabaho sa PostgreSQL ay hindi gaanong naiiba sa pagtatrabaho sa anumang iba pang relational na DBMS:

INSERT INTO user (login, password)
VALUES ("afiskon" , "123456" );
PUMILI * MULA sa mga gumagamit;

Kung susubukan mo na ngayong kumonekta sa Postgres mula sa isa pang makina, mabibigo ka:

psql -h 192.168.0.1 test_database test_user

Psql: hindi makakonekta sa server: Tumanggi ang koneksyon
Gumagana ba ang server sa host na "192.168.0.1" at tumatanggap
Mga koneksyon sa TCP/IP sa port 5432?

Upang ayusin ito, idagdag ang linya:

listen_addresses = "localhost,192.168.0.1"

...sa /etc/postgresql/9.2/main/postgresql.conf file din.