Archive for April, 2012

UMF and OMF

UMF
create tablespace projtab datafile ‘C:\oraclexe\app\oracle\oradata\XE\projtab01.dbf’ size 500K;

SQL> select file_name,tablespace_name from dba_data_files;

SQL> column file_name format a10
SQL> column tablespace_name format a20;

OMF

SQL> show parameter dba_create;

SQL> create tablespace oprojtab;
hata verir çünkü parameter tanımlanmadı.

SQL> alter system set db_create_file_dest =’C:\oraclexe\app\oracle\oradata’;

System altered.

SQL> create tablespace oprojtab;

Tablespace created.

C:\oraclexe\app\oracle\oradata\XE klasörü altında
DATAFILE klasörü yaratır onun altında da
O1_MF_OPROJTAB_7SWLRYBM_.DBF oluşturur

şimdi datafile ekleyelim. size vermek optional. datafile size ismini oracle kendisi veriyor.

SQL> alter tablespace oprojtab
2 add datafile size 100k;

Tablespace altered.

şimdi iki tane daha oluşturduğumuz datafile listelenir.

select file_name,tablespace_name from dba_data_files;

tablespace silme

SQL> drop tablespace oprojtab;

Tablespace dropped.

C:\oraclexe\app\oracle\oradata\XE altında PROJTAB01.DBF dosyası UMF olarak oluşturulmuştu ve silinmez bunu diskten gidip manuel silmek

lazım.

Leave a comment

Managing Roles

Managing Roles

yeni bir kullanıcı oluşturalım

create user mike
identified by mikepass
default tablespace users
temporary tablespace temp
quota 500k on users
account unlock

create session priv. içerir. database’ye bağlanmamızı sağlar
grant connect to mike

o an ki session’da aktif olan rolleri döner
select * from session_roles

sadece CONNECT Rolünü döner.

Role tanımlama
create role r1
create role r2 identified by r2pass
create role r3

roller priv. verelim r1 system priv. verdik
grant create table,create view to r1

r2 object priv. verelim
grant select on HR.departments to r2

r3 ye sequence create priv. verelim

grant create sequence to r3

bir rolü diğer bir role atama
grant r3 to r1

mike’a r1 rolünü verelim

grant r1 to mike

tablo yarabilir mi?
create table t2 (a number)

cevap:hayir

disconnect olup tekrar bağlanılması lazım. Sql developer’da sessin silinmesi lazım. çünkü roller otomatik yansımıyor

select * from session_roles

şimdi CONNECT,R1 ve R3 rollerine sahip

tablo yaratbilir

create table t2 (a number)

view da yaratabiliriz
create view vt2 as select *from t2

r3 ye sequence yaratma hakkı vermişti ve r1 ‘a atanmıştı.
s1 sequence’i yaratılır
create sequence s1

select * from hr.departments

hata verir
“table or view does not exist”

eğer mike’a r2 rolünü verirsek. ve disconnect olup bağlanırsak çalışır
grant r2 to mike

rolü silmek için
drop role r1
select * from hr.departments

Leave a comment

Oracle Kullanıcı Oluşturma

Tablespace Listeleme:
select tablespace_name from dba_tablespaces

Yeni kullanıcı oluşturma:

create user sid
identified by sidpass
default tablespace users
temporary tablespace temp
quota 10m on users
account unlock

connection açma ve tablo oluşturma hakkı için

GRANT CREATE SESSION,CREATE TABLE
TO SID

REVOKE ile verilen hakkı geri alma
REVOKE CREATE TABLE FROM SID

verilen hakları listeleme
select * from session_privs

system_privilege kolon isimleri
desc system_privilege_map

system_privilege isimlerini verir
select name from system_privilege_map

DBA_TAB_PRIVS view, you will see that hr is shown as being the grantor of the privilege:

SELECT GRANTEE, OWNER, GRANTOR, PRIVILEGE, GRANTABLE
FROM DBA_TAB_PRIVS
WHERE TABLE_NAME = ‘EMPLOYEES’ and OWNER = ‘HR’;

sid kullanıcısına hr schema’sı altındaki employee tablosuna bazı haklar tanımak

grant select,insert,update,delete,index on employees to sid

employees tablosunda salary kolonuna update hakkı verme
grant update(salary) on employees to sid

maaşları 10 birim arttırabiliriz şimdi
update hr.employees set salary=salary+10

Hr schema’sındaki procedurelerden secure_dml procedure’ne execute hakkı verilir.
grant execute on secure_dml to sid

sid kullanıcsının sahip olduğu hakları verir.

select * from user_tab_privs

kolon bazlı hakları döner. burda sadece salary’e update hakkı vermiştik
select * from user_col_privs

colon bazlı hakkı geri alma
revoke update(salary) on employees from sid
bu hata verir.”UPDATE/REFERENCES may only be REVOKEd from the whole table, not by column”

doğrusu şu şekilde olmalı
revoke update on employees from sid

Leave a comment