Tuesday, January 28, 2014

Oracle DB - User/Schema


Za pristup Oracle bazi podataka (odnosno podacima u bazi) koriste se korisnički nalozi. Ti korisnički nalozi nazivaju se USER-i. To su "obični" korisnički nalozi, pored njih postoje i "specijalni" korisnički nalozi koji se nazivaju SCHEMA-e. SCHEMA-ma se nazivaju oni USER-i koji imaju privilegije da kreiraju objekte (tabele, view-e, procedure ili funkcije) i koji posjeduju neki od objekata na bazi. Dakle, SCHEMA-e su USER-i koji posjeduju svoje podatke u Oracle bazi podataka, a USER-i su korisnički nalozi (korisnici) kojima se daju privilegije za pristup određenim podacima čiji su vlasnici SCHEMA-e.

Prilikom instalacije Oracle baze podataka kreiraju se i neke default-ne SCHEMA-e od kojih su najvažnije SCHEMA-e SYS i SYSTEM. Spisak ostalih default-nih USER-a/SCHEMA možete pogledati na link-u.

SYS SCHEMA je vlasnik Oracle Data Dictionary-a, odnosno Catalog-a. Catalog sadrži sve podatke o samoj bazi, njenoj strukturi i konfiguraciji. SYS je ujedno i glavni (ROOT) administratorski nalog na bazi. Koristi se za administraciju same baze. Prilikom konekcije na bazu sa nalogom SYS mora se navesti i sa kojom se ROLE-om vrši konekcija. Moguće ROLE su SYSDBA i SYSOPER.

SYSTEM je default-ni DBA (Administratorski) nalog na bazi. Koristi se za administraciju korisnika na bazi, i u određenoj mjeri za administraciju same baze podataka.




Da bi kreirali USER-a na Oracle bazi podataka moramo se prvo prijaviti na bazu kao SYSTEM user:

$ sqlplus /nolog



SQL*Plus: Release 11.2.0.4.0 Production on Tue Jan 28 12:14:03 2014



Copyright (c) 1982, 2013, Oracle.  All rights reserved.



SQL> conn system

Enter password:

Connected.

SQL>


Zatim izvršimo naredbu za kreiranje USER-a:

SQL> create user testuser1 identified by testpass1;



User created.


Ovom naredbom kreiran je USER testuser1 sa lozinkom testpass1. Ovako kreiran USER nema nikakve privilegije na bazi, čak ne može ni pristupiti bazi. Da bi USER testuser1 mogao pristupiti bazi moraju mu se dati privilegije za to:

SQL> grant create session to testuser1;



Grant succeeded.


Sada se user testuser1 može ulogovati na bazu ali ne može ništa drugo uraditi. Da bi USER mogao nešto raditi na bazi za to mu se moraju dodati odgovarajuća prava. Korisnička prava USER-u mogu se dati i dodavanjem ROLE-a (skupa privilegija/prava). Neke od "ugrađenih" ROLE-a su: connect, resource i dba. Moguće je kreirati i custom ROLE.

Komanda za kreiranje SCHEMA-e je slična komandi za kreiranje USER-a, takođe, mora je izvršiti SYSTEM user:

SQL> CREATE USER testschema1 IDENTIFIED BY testpass2 DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp;



User created.


Sada je potrebno dodati odgovarajuće privilegije SCHEMA-i testschema1:

SQL> grant connect, resource to testschema1;



Grant succeeded.


Konektujmo se na bazu kao USER testschema1:

SQL> conn testschema1

Enter password:

Connected.


Sada možemo kreirati neku tabelu u SCHEMA-i testschema1:

SQL> CREATE TABLE korisnici (ID NUMBER(3) PRIMARY KEY,Ime VARCHAR2(10) NOT NULL,Prezime VARCHAR2(16),Datum_kreiranja DATE DEFAULT (sysdate));



Table created.



SQL> select * from cat;



TABLE_NAME                     TABLE_TYPE

------------------------------       -----------

KORISNICI                           TABLE



Unesimo neki podatak u tabelu korisnici:

SQL> insert into korisnici(ID,Ime,Prezime,Datum_kreiranja) values(1,'Suad','Adrovic',sysdate);



1 row created.



SQL> select * from korisnici;



        ID   IME        PREZIME          DATUM_KREI

----------  ---------- ----------------       ----------

         1    Suad       Adrovic               28.01.2014


Dodajmo  sada pravo pregleda tabele korisnici USER-u testuser1:

SQL> grant select on korisnici to testuser1;



Grant succeeded.


Provjerimo sada da li USER testuser1 ima pristup tabeli korisnici čiji je vlasnik SCHEMA testchema1:

SQL> conn testuser1
Enter password:
Connected.

SQL> select * from testschema1.korisnici;



          ID      IME        PREZIME          DATUM_KREI

---------- ----------    ----------------          ----------

         1        Suad             Adrovic          28.01.2014



Spisak privilegija i ROLE-a koje USER/SCHEMA mogu imati možete pogledati na link-u.


No comments:

Post a Comment