PostgreSQL piešķir lietotājam visas shēmas privilēģijas

Postgresql Pieskir Lietotajam Visas Shemas Privilegijas



Datu bāzes ir ļoti svarīgas, un administratora pienākums ir kontrolēt, kādas dažādās lomas lietotāji var veikt noteiktā datubāzē. Autorizācijas ietvaros administrators var definēt lietotāju entītijas datu bāzē un piešķirt vai atsaukt lomām dažādas privilēģijas.

Tādā veidā jūs iegūstat kontroli pār to, kas var piekļūt datubāzei un kādas privilēģijas viņiem ir, ja viņi var piekļūt datu bāzei. Piemēram, varat atsaukt datu bāzes modifikāciju vai piešķirt visas shēmas privilēģijas lietotājam vai lietotājiem noteiktā tabulā. Šajā rokasgrāmatā ir aprakstīts, kā izmantot PostgreSQL, lai lietotājam piešķirtu visas shēmas privilēģijas.







Kā piešķirt privilēģijas lietotājiem vietnē PostgreSQL

Kad izveidojat jaunu lomu, viņi pēc noklusējuma saņem dažas privilēģijas. Tomēr lielākajai daļai privilēģiju administratoram ir jāpiešķir tās dažādiem lietotājiem, lai regulētu piekļuvi shēmai un tās kontroli. Jūs varat piešķirt visas privilēģijas vienlaikus vai atsevišķi.



Šai apmācībai izveidosim jaunu lomu nosaukts linuxhint1 .



$ sudo -iu postgres
# izveidot lomu linuxhint1 pieteikšanās parole ‘linuxhint’;


Ņemiet vērā, ka esam pieteikušies kā postgres, noklusējuma loma, kas izveidota pēc PostgreSQL instalēšanas.






Kad ir izveidota loma (lietotājs), mēs varam uzskaitīt pieejamās lomas, izmantojot šādu komandu:

# \ no


Pieejamās lomas tiks parādītas tabulas formātā.




Postgres ir noklusējuma loma, un tai jau ir piešķirta lielākā daļa privilēģiju. Tomēr jaunā loma, linuxhint1, nav nekādu privilēģiju, kamēr mēs to nepiešķiram.

1. Noteiktu privilēģiju piešķiršana lietotājam

Izveidotā loma nevar mainīt shēmu, ja vien jūs to neatļaujat. Pārbaudīsim to, vispirms izveidojot tabulu kā noklusējuma lomu, postgres.

# izveidot tabulu nosaukumus ( m_id int tiek ģenerēts vienmēr identitāte, fname vachar ( 100 ) nav nulles, lname varchar ( 100 ) nav nulles, vecums int ) ;



Varat uzskaitīt pieejamās attiecības, kā parādīts zemāk:


Pēc tam atveriet jaunu čaulu un piesakieties PostgreSQL, izmantojot citu lomu, linuxhint1, ko mēs izveidojām iepriekš, izmantojot šo komandu:

$ psql -IN linuxhint1 -d postgres



The -d norāda, ka loma ir Postgres datu bāzes izmantošana.

Mēģiniet izlasīt tabulas saturu, kuru izveidojām, izmantojot ATLASĪT komandu.

# ATLASĪT * NO nosaukumiem;


Tas atgriež a atļauja liegta kļūda neļauj lietotājam piekļūt tabulai.


Šādā gadījumā mums ir jāpiešķir lomas privilēģijas, lai atlasītu/skatītu datus no dotās tabulas, izmantojot šādu sintaksi:

# GRANT privilēģijas_nosaukums ON tabulas_nosaukums LAI lomas_nosaukums;


Lai piešķirtu privilēģijas, izmantojiet Postgres sesiju.


Kad tas ir piešķirts, mēģiniet atkārtoti palaist iepriekšējo komandu.


Tieši tā. Jums izdevās piešķirt atlases privilēģiju konkrētajam lietotājam.

2. Visu shēmas privilēģiju piešķiršana lietotājam

Līdz šim esam spējuši lietotājam piešķirt tikai vienu shēmas privilēģiju. Nu, ar to nepietiek. Lietotājs nevar modificēt shēmu, ja vien nepiešķirat tai visas privilēģijas, piemēram, ievietošanu un atjaunināšanu.

Ir dažādi veidi, kā to panākt. Pirmkārt, pieņemsim piešķirt lietotājam visas tiesības uz doto tabulu izmantojot šādu sintaksi:

# PIEŠĶIRT VISU tabulas_nosaukumā TO lomas_nosaukums;



Lietotājs var mijiedarboties ar konkrēto tabulu un modificēt to. Tomēr tās nevar strādāt ar citām shēmas tabulām.

Uz piešķirt visas privilēģijas visām tabulām noteiktā shēmā , izmantojiet šādu sintaksi:

# PIEŠĶIRT VISU VISĀM TABUĻĀM SHĒMAS shēmas_nosaukums LAI lomas_nosaukums;



Visbeidzot, jūs varat piešķirt noteiktas privilēģijas, piemēram, ievietot vai atlasīt visas shēmas tabulas noteiktai lomai .

# PIEŠĶIRT privilēģiju_nosaukums VISĀS SHĒMAS TABUĻĀS shēmas_nosaukums LAI lomas_nosaukums;



Loma var atlasīt datus visās norādītās shēmas tabulās. Tādā veidā jūs definējat, kādas privilēģijas shēmā piešķirt dažādiem lietotājiem.

Secinājums

PostgreSQL ir jaudīga DBVS. Tam ir dažādas funkcijas, tostarp ļauj administratoram piešķirt lietotājiem dažādas privilēģijas. Visu shēmas privilēģiju piešķiršana lietotājiem nozīmē atļauju lietotājam modificēt un mijiedarboties ar visām tabulām norādītajā shēmā. Mēs esam redzējuši, kā piemērot šo un citus veidus, kā piešķirt privilēģijas shēmā lomām, izmantojot GRANT priekšrakstu programmā PostgreSQL.