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