Használata szerepek és hozzáférés-vezérlés postgresql

Miután szerver biztonságos adatközpontok Európában. Nyílt felhő VPS / VDS szerver egy gyors SSD 1 perc alatt!

A legjobb Web Hosting:
- megvédi az illetéktelen hozzáférés egy biztonságos európai adatközpont
- fizet legalább Bitcoin.
- Akkor tegye meg a disztribúciós

- védelmet DDOS támadások
- ingyenes biztonsági mentés
- Üzemidő 99,9999%
- DPC - TIER III
- ISP - TIER I

Támogatás az orosz 24/7/365 dolgozni a jogi és fizikai személyek. Most kell 24 mag és 72 Gb RAM. Kérlek!

A versenyképes áron bizonyítani, hogy a legolcsóbb hosting, ha nem tudja!

A percek alatt, válassza ki a konfiguráció, a fizetés és a CMS egy VPS kész.
Pénzvisszafizetési - 30 nap alatt!

Bankkártyák, elektronikus valuta révén Qiwi terminálok, WebMoney, PayPal, Novoplat és mások.

Tegye fel kérdését támogatás 24/7/365

Megtalálja a választ az adatbázisunkban, és megfelel az ajánlásokat a

PostgreSQL - egy nyílt adatbázis-kezelő rendszer (DBMS), nyelve alapján SQL lekérdezések. PostgreSQL - egy nagyon hatékony eszköz a szervező és tároló alkalmazás adatait.

Ez az útmutató bemutatja, hogyan kell kezelni a PostgreSQL engedélyeket.

Megjegyzés. Az utasítások a felhő Ubuntu 12.04, de minden utasítást, kivéve a szakaszt telepítés, fel lehet használni más modern Linux.

telepítése PostgreSQL

Ha a PostgreSQL adatbázis nem volt korábban telepített, telepítse most. Ehhez használja a következő parancsot:

sudo apt-get update
sudo apt-get install postgresql postgresql-contrib

A telepítés során a PostgreSQL létrehoz egy szabványos felhasználói dolgozni. Keresse meg a munkamenet a felhasználó.

sudo su - postgres

PostgreSQL hozzáférési jogok

PostgreSQL hozzáférést szabályozza révén az úgynevezett szerepeket.

A szerepek hasonlóak a szokásos Unix engedélyezési rendszer, de ellentétben a Unix, ők vannak osztva a felhasználók és csoportok.

A szerepek tagjai lehetnek más szerepeket, amelyek lehetővé teszik számukra, hogy örökölje a beállításokat bizonyos kiváltságokat korábbi szerepek.

majd adja meg a következő parancsot:

Mint látható, ha telepítve van a PostgreSQL csak egy szerepet, hogy a széles körű hozzáférési jogokat.

Létrehozása PostgreSQL szerepet

Két alapvető módon lehet létrehozni szerepeket a parancssor PostgreSQL, és a parancssorba.

Létrehozása szerepek PostgreSQL

A legegyszerűbb módja annak, hogy hozzon létre egy új szerep a parancssorban PostgreSQL.

Ehhez használja a következő szintaxist:

CREATE ROLE new_role_name;

Megpróbál létrehozni egy új szerep (a kézi konvencionálisan úgynevezett demo_role):

CREATE ROLE demo_role;
CREATE ROLE

Ellenőrizze a listát a meglévő szerepek:

\ du
Listája szerepek
Szerep neve | attribútumok | tagja
-----------+------------------------------------------------+-----------
demo_role | Nem tudok belépni | <>
postgres | Rendszergazda, Create szerepe, Create DB, replikációs | <>

Mint látható, a lista egy új szerepet. Megjegyzés: abban a pillanatban, hogy nincs belépési jogosultsággal.

Létrehozása egy szerepet a rendszer gyors,

Ön is létrehozhat szerepet használatával createuser csapat.

Zárja be a parancssor PostgreSQL:

Ahhoz, hogy hozzon létre egy szerepet a rendszerben írja be a következő parancsot (a kézi, ezt a szerepet fogja feltételesen nevezett test_user):

createuser test_user
Kell az új szerep, hogy egy rendszergazda? (Y / n) n
Kell az új szerep hozható létre adatbázisokat? (Y / n) n
Kell az új szerepet kell tenni, hogy több új szerepek? (Y / n) n

A csapat fogja kérni egy sor kérdést, amely meghatározza a kezdeti jogosultságokat a szerepet.

Ismét nyisson meg egy parancssort Postgres és kérjen egy listát a meglévő szerepek:

-jét
\ du
Listája szerepek
Szerep neve | attribútumok | tagja
-----------+------------------------------------------------+-----------
demo_role | Nem tudok belépni | <>
postgres | Rendszergazda, Create szerepe, Create DB, replikációs | <>
test_user | | <>

Mint látható, a szerepe létrehozott különböző módon, nem azonos. A szerepe jön létre a rendszer gyors, már be kiváltságokat.

Eltávolítása PostgreSQL szerepek

Most próbálja kiegyenlíteni a szerepek és a kiváltságok demo_role test_user. Ezt meg lehet tenni létrehozása során a szerep (vagyis el kell távolítani, majd újra létrehozni demo_role). Is, akkor egyszerűen szerkesztheti a jogosultságokat a szerepet.

De mielőtt elkezdené irányító PostgreSQL kiváltságokat, meg kell tanulni, hogyan kell eltávolítani a szerepeket.

Ehhez használja a következő szintaxist:

DROP ROLE ROLE_NAME;
Törölje a „demo_role” szerepét kell beírni:
DROP ROLE demo_role;
DROP ROLE

Ha adott a csapat szerepe nem létezik, akkor a parancs hibaüzenetet:

DROP ROLE demo_role;
HIBA: szerep „demo_role” nem létezik

Ha létezik szereplő, hogy elkerüljék ezt a hibát; egy csapat ilyen üzemeltető eltávolítja a szerepet, ha létezik. Ha nem rendelkezik az előírt szerepet, hogy a parancs nem ad vissza hibát.

DROP ROLE ha létezik ROLE_NAME;

Azaz, minden esetben, a csapat sikeres és nem tér vissza egy hiba.

DROP ROLE ha létezik demo_role;
FIGYELMEZTETÉS: szerep „demo_role” nem létezik, kihagyva
DROP ROLE

Bizonyos kiváltságokat létrehozása során a szerepe

Most próbálja meg újra létrehozni egy szerepet demo_role, előre beállításával engedélyeket. A jog szerepe lehet megadni után azonnal fő szereplő létre.

A szintaxis a következőképpen néz ki:

CREATE ROLE ROLE_NAME WITH optional_permissions;

Ahhoz, hogy a felhasználó ezzel kapcsolatos szerepe volt a bejárat kiváltságokat, típusa:

CREATE ROLE demo_role bejelentkezéssel;
CREATE ROLE

Ellenőrizze a listát a meglévő szerepek, és vegyük észre, hogy most a két szerep azonos jogosultságokkal:

Ahhoz, hogy a szerepe a bejárat jobb vita nélkül belépés, ahelyett, hogy a CREATE ROLE következő parancsot:

CREATE USER ROLE_NAME;

CREATE USER parancs csak akkor más, hogy automatikusan megadja a szerepét belépési jogokat.

szerepének jogkezelés PostgreSQL

Ahhoz, hogy az engedélyek módosításához meglévő szerepkör használja ALTER ROLE.

Alapvető szintaxis:

ALTER ROLE ROLE_NAME WITH attribute_options;

Például megpróbál visszatérni a szerepe demo_role eredeti jogosultságok:

ALTER ROLE demo_role WITH nologint;
ALTER ROLE

\ du
Listája szerepek
Szerep neve | attribútumok | tagja
-----------+------------------------------------------------+-----------
demo_role | Nem tudok belépni | <>
postgres | Rendszergazda, Create szerepe, Create DB, replikációs | <>
test_user | | <>

Most a szerepe demo_role nincs bejelentkezési jogosultsággal.

Vissza belépési jogokat tudja használni a parancsot:

ALTER ROLE demo_role bejelentkezéssel;

Változó PostgreSQL felhasználó

Alapértelmezés szerint a felhasználók csak be lokálisan, ha a rendszer felhasználói név ugyanazt a szerepet PostgreSQL.

Ha ezt módosítani, meg lehet változtatni a típusú bemenet vagy konfigurálja PostgreSQL hallgatni a helyi interfész (ez meg fogja változtatni a típusú kapcsolat a távoli).

Tekintsük most a második kiviteli alakban.

Először be kell állítania egy jelszót a felhasználó számára, amelyben meg kell mozgatni az ülésen.

Adjon meg egy jelszót test_user:

A parancs bekéri és erősítse meg a jelszót. PostgreSQL majd zárja le a felületet, és térjen vissza a rendszer felhasználói munkamenetet.

Alapértelmezésben a PostgreSQL feltételezi, hogy adja meg a szerepét kell alkalmazni, ugyanazt a nevet a rendszer felhasználói és hogy ezt a szerepet az lesz, hogy csatlakozni az adatbázishoz az azonos nevet.

De ebben az esetben nem így van, mert akkor kell meghatároznia, hogy a lehetőségek közül. Ehhez használja a következő szintaxist:

psql -U user_name -d database_name -h 127.0.0.1 -W

Megjegyzés. Ehelyett user_name adja meg a felhasználói nevét, amelyhez kapcsolódni kíván; helyett adja meg a database_name adatbázis nevét, amelyhez kapcsolódni kíván.

Az üzemeltető -h 127.0.0.1 azt jelzi, hogy szeretne csatlakozni a helyi gépen a hálózati interfész. Ez lehetővé teszi, hitelesített, akkor is, ha a felhasználó nevét és szerepét neve nem ugyanaz. -w azt jelenti, hogy ha bejelentkezik PostgreSQL hogy adjon meg egy jelszót.

Hogy nyissa ki a felhasználó test_user add ki:

psql -U test_user -d postgres -h 127.0.0.1 -W
A felhasználó jelszava test_user:

A program kérni fogja a korábban beállított jelszót.

Megjegyzés. Ez a parancs a felhasználó csatlakozik a postgres adatbázis, egy szabványos adatbázis jött létre, a telepítés során.

Próbálja dolgozni ezen az ülésen; Mint látható, a felhasználó egy meglehetősen szűk franchise.

Menj vissza a rendszergazda ülés:

\ q
sudo su - postgres
-jét

PostgreSQL jog kezelése

Hogyan át jogosultságokat

Jellemző, hogy amikor létrehoz egy adatbázist, vagy egy asztal hozzáférési jogokat, csak létrehozni egy szerepet. De az ilyen viselkedés megváltoztatható.

Transzfer a többi szerepek, jogosultságok használhatja a GRANT parancs alapvető szintaxis:

GRANT permission_type ON táblanév TO ROLE_NAME;

Például hozzon létre egy táblázatot:

CREATE TABLE demo (
név varchar (25),
id soros,
start_date dátum);
FIGYELMEZTETÉS: CREATE TABLE létrehoz implicit szekvencia "demo_id_seq" soros oszlop "demo.id"
CREATE TABLE

\ d
Listája kapcsolatok
séma | Név | Írja | tulajdonos
--------+-------------+----------+----------
állami | demo | táblázat | postgres
állami | demo_id_seq | szekvencia | postgres
(2 sor)

Most próbálja átadni bizonyos jogok hozzáférést az asztalra demo szerepet demo_role (legyen a jogot, hogy frissítse, UPDATE).

GRANT UPDATE ON demo demo_role;

Közvetíteni a teljes körű jogokkal az asztalon, használja az üzemeltető ALL:

Biztosítani minden ON demo test_user;

Át a hozzáférési jogot minden felhasználó számára a rendszer, ahelyett, hogy egy felhasználói nevet adja NYILVÁNOS:

GRANT INSERT ON demo NYILVÁNOS;

\ z
hozzáférési jogosultságok
séma | Név | Írja | Hozzáférési jogosultságok | Oszlop hozzáférési jogosultságok
--------+-------------+----------+----------------------------+--------------------------
állami | demo | táblázat | postgres = arwdDxt / postgres + |
| | | demo_role = W / postgres + |
| | | test_user = arwdDxt / postgres + |
| | | = A / postgres |
állami | demo_id_seq | szekvencia | |
(2 sor)

Hogyan kell elvenni jogosultságokat

A REVOKE parancs enyhítette jogosultságokat.

REVOKE permission_type ON táblanév USER_NAME;

Ez a parancs is használható az összes szereplők és a nyilvánosság számára.

REVOKE betét demo nyilvánosság számára;

Csoportszerepek PostgreSQL

PostgreSQL segítségével csoport szerepek, így szerepe lehet örökölni előre hozzáférési jogokat.

Például létrehozhat egy szerepet temporary_users és add hozzá a szerepe demo_role és test_user:

CREATE ROLE temporary_users;
GRANT temporary_users TO demo_role;
GRANT temporary_users TO test_user;

Most a csoport szerepét temporary_users jogosultságok kezelése és demo_role test_user szerepeket.

A csapat szereptípusa lehetővé teszi, hogy válasszon ki egy csoportot szerepet, a jogot, hogy.

Például az aktuális felhasználó postgres superuser. Még annak ellenére, hogy a felhasználó nem tagja a szerepet temporary_users, tudja használni a jobb:

Szereptípusa temporary_users;

Most minden létrehozott táblázat fog tartozni, a csoport szerepe temporary_users.

CREATE TABLE szia (
név varchar (25),
id soros,
start_date dátum);

\ d
Listája kapcsolatok
séma | Név | Írja | tulajdonos
--------+--------------+----------+-----------------
állami | demo | táblázat | postgres
állami | demo_id_seq | szekvencia | postgres
állami | szia | táblázat | temporary_users
állami | hello_id_seq | szekvencia | temporary_users
(4 sor)

Mint látható, az új tábla tartozik a szerep temporary_users.

Ahhoz, hogy visszatérjen az eredeti szabályok a jelenlegi szerepét, típusa:

Közvetíteni a felhasználói jogosultságokat minden szerep, amelynek ő is használja a következő parancsot:

ALTER ROLE test_user INHERIT;

Egy csoport törléséhez szerepet (vagy semmilyen szerepet), használja:

DROP ROLE temporary_users;
HIBA: szerep „temporary_users” nem esett vissza, mert néhány tárgy múlik rajta
Részletek: tulajdonosa táblázat szia
tulajdonosa szekvencia hello_id_seq

Ez a parancs hibát ad vissza, mert a szerepe temporary_users asztal tartozik. Először meg kell átadni a jogot, hogy a tábla egy másik szerepet:

ALTER TABLE szia tulajdonos demo_role;

Most a szerepe az asztal tartozik a szerep demo_role.

\ d
Listája kapcsolatok
séma | Név | Írja | tulajdonos
--------+--------------+----------+-----------
állami | demo | táblázat | postgres
állami | demo_id_seq | szekvencia | postgres
állami | szia | táblázat | demo_role
állami | hello_id_seq | szekvencia | demo_role
(4 sor)

Ezt követően, akkor távolítsa el a szerepet temporary_users:

DROP ROLE temporary_users;

Ez eltávolítja a szerepe temporary_users; A csoport tagjai a szerepek eltávolítjuk.

következtetés

Most van az alapvető készségek dolgozó PostgreSQL jogosultsággal. Hozzáférési jogok kezelése - egy nagyon fontos szempont az adatok feldolgozására; Ez lehetővé teszi minden egyes alkalmazás használatához csak a szükséges adatokat, hogy beavatkozás nélkül más alkalmazásokkal.

Kapcsolódó cikkek