poniedziałek, 2 lipca 2012

Użytkownicy i uprawnienia



Tworzenie użytkownika


W celu stworzenia użytkownika dla bazy ORACLE musimy zalogować się do niej jako sys, a następnie wydać polecenie, które nadaję nowemu użytkownikowi nazwę, oraz hasło do logowania:



CREATE USER nazwa_użytkownika IDENTIFIED BY hasło;


Nadawanie uprawnień użytkownikowi


Następną czynnością jest nadanie nowo stworzonemu użytkownikowi nadanie odpowiednich uprawnień. Poniżej
widzimy przykładowe uprawnienia:


CREATE TABLE - umożliwia tworzenie tabel
CREATE SESSION - umożliwia łączenie się z bazą
CREATE VIEW - umożliwia tworzenie widoku
CREATE USER - umożliwia tworzenie nowych użytkowników
DROP USER - umożliwia usuwanie użytkowników
SELECT – umożliwia przeglądanie tabeli
UPDATE - umożliwia zmianę wartości w tabeli
INSERT - umożliwia dodawanie nowych wierszy w tabeli
DELETE - umożliwia usuwanie wierszy w tabeli


Aby nadać użytkowi uprawnienia wpisujemy:


GRANT uprawnienie TO nazwa_uzytkownika;


Zmiana hasła


W celu zmiany hasła dla użytkownika wywołujemy następującą komendę:


ALTER USER nazwa_użytkownika identified by nowe_hasło;






ODBIERANIE UPRAWNIEŃ UŻYTKOWNIKOWI


Aby odebrać użytkownikowi uprawnienia należy wpisać komendę:


REVOKE uprawnienie FROM nazwa_uzytkownika;


USUWANIE UŻYTKOWNIKA


Aby usunąć użytkownika wprowadzamy komendę:


DROP USER nazwa_uzytkownika;


to usuwanie jest możliwe do wykonania, kiedy użytkownik nie posiada w swoim schemacie żadnych obiektów.


DROP USER nazwa_uzytkownika CASCADE;


ten sposób usuwamy wszystkie obiekty dodane/stworzone przez konkretnego użytkownika


NADAWANIE ROLI UŻYTKOWNIKOM


Nadając użytkownikowi role, nadajemy mu pewien zbiór uprawnień zawartych w danej roli. Najważniejsze role to:


DBA - rola jaką ma użytkownik system. Posiada wszystkie podstawowe uprawnienia niezbędne do
administrowania bazą danych.


CONNECT, RESOURCE- te dwie role zazwyczaj nadajemy użytkownikom zaraz po ich stworzeniu. Pozwalają na
łączenie się z bazą danych (CONNECT), oraz tworzenie obiektów w obrębie swojego schematu.


PUBLIC - Ta rola nadawana jest domyślnie każdemu użytkownikowi przez system. Nadając jakieś
uprawnienie tej roli otrzymają ją wszyscy.



GRANT CONNECT, RESOURCE TO nazwa_uzytkownika;


TWORZENIE WŁASNYCH ROLI


Poza predefiniowanymi rolami mogą istnieć również role stworzone przez nas samych (lub innych użytkowników).

Rolę tworzymy poleceniem:


CREATE ROLE nazwa_roli;


rolę usuwamy komendą:


DROP ROLE nazwa_roli;


Dzięki temu zabiegowi użytkownik nie będzie mógł korzystać z uprawnień z nią związanych zanim nie poda do niej hasła. W roli mogą znajdować się zarówno polecenia obiektowe jak i systemowe. Do roli mogą należeć inne role.


Uprawnienia nadajemy roli poleceniem:


GRANT uprawnienie TO nazwa_roli;

Np.

GRANT CREATE TABLE TO nazwa_roli;


SPRAWDZANIE PRZYZNANYCH ROLI I UPRAWNIEŃ ROLI


Aby sprawdzić jakie role zostały nam przypisane możemy zajrzeć do słownika user_role_privs:


SELECT * FROM USER_ROLE_PRIVS;


Jako użytkownik SYS możesz też sprawdzić jakie role zostały nadane wszystkim użytkownikom:


SELECT * FROM DBA_ROLE_PRIVS;


Oczywiście możemy też na tym widoku wykonywać normalne selecty, więc bez problemu sprawdzimy jakie role
zostały przypisane wybranemu użytkownikowi.


Możemy też sprawdzić jakie uprawnienia systemowe zostały przypisane roli:


SELECT * FROM ROLE_SYS_PRIVS;


W tym widoku zobaczymy jednak tylko uprawnienia systemowe. Aby zobaczyć uprawnienia obiektowe, zaglądamy
do słownika ROLE_TAB_PRIVS


SELECT * FROM ROLE_TAB_PRIVS;



ODBIERANIE ROLI UŻYTKOWNIKOM


Aby odebrać rolę użytkownikowi wywołujemy komendę:


REVOKE nazwa roli FROM nazwa_uzytkownika;





3 komentarze:

  1. Czy jest możliwość sprawdzenia, który z użytkowników oracle od dłuższego czasu nie wykonał żadnego zapytania lub wisi tam bezczynnie - np. w celu zarezerwowania sobie licencji systemu ERP opartego o baze oracle?

    OdpowiedzUsuń
  2. Bardzo dobry wpis. Pozdrawiam serdecznie.

    OdpowiedzUsuń
  3. Bardzo ciekawie to zostało opisane.

    OdpowiedzUsuń