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.