PostgreSQL - PRZYWILEJE

Za każdym razem, gdy w bazie danych tworzony jest obiekt, przypisywany jest do niego właściciel. Właściciel jest zwykle tym, który wykonał oświadczenie o stworzeniu. W przypadku większości rodzajów obiektów stan początkowy jest taki, że tylko właściciel (lub superużytkownik) może modyfikować lub usuwać obiekt. Aby umożliwić innym rolom lub użytkownikom korzystanie z niej, należy nadać im uprawnienia lub pozwolenie.

Różne rodzaje uprawnień w PostgreSQL to -

  • SELECT,
  • INSERT,
  • UPDATE,
  • DELETE,
  • TRUNCATE,
  • REFERENCES,
  • TRIGGER,
  • CREATE,
  • CONNECT,
  • TEMPORARY,
  • EXECUTE i
  • USAGE

W zależności od typu obiektu (tabela, funkcja itp.), Obiektowi nadawane są uprawnienia. Do przypisania uprawnień użytkownikom służy polecenie GRANT.

Składnia GRANT

Podstawowa składnia polecenia GRANT jest następująca -

GRANT privilege [, ...]
ON object [, ...]
TO { PUBLIC | GROUP group | username }
  • privilege - wartościami mogą być: SELECT, INSERT, UPDATE, DELETE, RULE, ALL.

  • object- nazwa obiektu, do którego ma zostać udzielony dostęp. Możliwe obiekty to: tabela, widok, sekwencja

  • PUBLIC - Krótki formularz przedstawiający wszystkich użytkowników.

  • GRUPA group - grupa, której mają zostać przyznane uprawnienia.

  • username- nazwa użytkownika, któremu nadać uprawnienia. PUBLICZNY to krótki formularz reprezentujący wszystkich użytkowników.

Uprawnienia można cofnąć za pomocą polecenia REVOKE.

Składnia REVOKE

Podstawowa składnia polecenia REVOKE jest następująca -

REVOKE privilege [, ...]
ON object [, ...]
FROM { PUBLIC | GROUP groupname | username }
  • privilege - wartościami mogą być: SELECT, INSERT, UPDATE, DELETE, RULE, ALL.

  • object- nazwa obiektu, do którego ma zostać udzielony dostęp. Możliwe obiekty to: tabela, widok, sekwencja

  • PUBLIC - Krótki formularz przedstawiający wszystkich użytkowników.

  • GRUPA group - grupa, której mają zostać przyznane uprawnienia.

  • username- nazwa użytkownika, któremu nadać uprawnienia. PUBLICZNY to krótki formularz reprezentujący wszystkich użytkowników.

Przykład

Aby zrozumieć uprawnienia, najpierw utwórzmy UŻYTKOWNIKA w następujący sposób -

testdb=# CREATE USER manisha WITH PASSWORD 'password';
CREATE ROLE

Komunikat CREATE ROLE wskazuje, że utworzono UŻYTKOWNIKA „manisha”.

Rozważ poniższą tabelę FIRMA zawierająca rekordy -

testdb# select * from COMPANY;
 id | name  | age | address   | salary
----+-------+-----+-----------+--------
  1 | Paul  |  32 | California|  20000
  2 | Allen |  25 | Texas     |  15000
  3 | Teddy |  23 | Norway    |  20000
  4 | Mark  |  25 | Rich-Mond |  65000
  5 | David |  27 | Texas     |  85000
  6 | Kim   |  22 | South-Hall|  45000
  7 | James |  24 | Houston   |  10000
(7 rows)

Następnie nadajmy wszystkie uprawnienia na stole COMPANY użytkownikowi „manisha” w następujący sposób -

testdb=# GRANT ALL ON COMPANY TO manisha;
GRANT

Komunikat GRANT wskazuje, że wszystkie uprawnienia są przypisane do UŻYTKOWNIKA.

Następnie cofnijmy przywileje UŻYTKOWNIKOWI „manisha” w następujący sposób -

testdb=# REVOKE ALL ON COMPANY FROM manisha;
REVOKE

Komunikat REVOKE wskazuje, że wszystkie uprawnienia zostały odebrane UŻYTKOWNIKOWI.

Możesz nawet usunąć użytkownika w następujący sposób -

testdb=# DROP USER manisha;
DROP ROLE

Komunikat DROP ROLE wskazuje, że USER „Manisha” został usunięty z bazy danych.