815-Oracle規範(建立使用者,表空間和表)

fjzcau發表於2015-05-18
以下示例,資料庫例項名cmis,使用者bsbview,規範必須遵守如下:
a)所有表空間的資料檔案應放在/oradata/cmis目錄下
b)資料庫使用者名稱的密碼必須含有:數字,字母和其他非字母和數字的字元,如#,$,!等
c)所有資料庫使用者不能擁有DBA許可權。

1)建立表空間和臨時表空間 
sqlplus / as sysdba
SQL> create tablespace tbs01 datafile '/oradata/cmis/tbs01_1.dbf' size 10m,'/oradata/cmis/tbs01_2.dbf' size 10m;
SQL> create temporary tablespace temp01 tempfile '/oradata/cmis/temp01_1.dbf' size 10m;

2)建立使用者指定預設表空間和臨時表空間 
sqlplus / as sysdba 
SQL> create user bsbview identified by bsbview12# default tablespace tbs01 temporary tablespace temp01; 
SQL> grant resource,connect to bsbview;

若未指定,則可修改:
alter user bsbview default tablespace tbs01 ;
alter user bsbview temporary tablespace temp01;

3)建立表,表空間若使用使用者預設表空間,則建表語句可以不指定表空間
SQL> conn bsbview/bsbview12#;
SQL> create table t2(column1 int, column2 char(80)) tablespace tbs01; 


4)許可權管理用兩個角色來實現:

#--建立角色 bsb_write_role:具有DML操作許可權  
create role bsb_write_role;

#--建立角色 bsb_read_role:具有隻讀許可權 
create role bsb_read_role;

#-----------------------------------------------#
#--給DML角色 bsb_write_role 授權  
GRANT CONNECT,RESOURCE,exp_full_database,imp_full_database TO bsb_write_role;
GRANT   ALTER   ANY   CLUSTER   TO   bsb_write_role; 
GRANT   ALTER   ANY   INDEX   TO   bsb_write_role; 
GRANT   ALTER   ANY   PROCEDURE   TO   bsb_write_role; 
GRANT   ALTER   ANY   ROLE   TO   bsb_write_role; 
GRANT   ALTER   ANY   SEQUENCE   TO   bsb_write_role; 
GRANT   ALTER   ANY   SNAPSHOT   TO   bsb_write_role; 
GRANT   ALTER   ANY   TABLE   TO   bsb_write_role; 
GRANT   ALTER   ANY   TRIGGER   TO   bsb_write_role; 
GRANT   ALTER   PROFILE   TO   bsb_write_role; 
GRANT   ALTER   SESSION   TO   bsb_write_role; 
GRANT   ALTER   USER   TO   bsb_write_role; 
GRANT   BACKUP   ANY   TABLE   TO   bsb_write_role; 
GRANT   CREATE   ANY   CLUSTER   TO   bsb_write_role; 
GRANT   CREATE   ANY   INDEX   TO   bsb_write_role; 
GRANT   CREATE   ANY   PROCEDURE   TO   bsb_write_role; 
GRANT   CREATE   ANY   SEQUENCE   TO   bsb_write_role; 
GRANT   CREATE   ANY   SNAPSHOT   TO   bsb_write_role; 
GRANT   CREATE   ANY   SYNONYM   TO   bsb_write_role; 
GRANT   CREATE   PUBLIC  SYNONYM   TO   bsb_write_role; 
GRANT   CREATE   SYNONYM     TO   bsb_write_role; 
GRANT   CREATE   ANY   TABLE   TO   bsb_write_role; 
GRANT   CREATE   ANY   TRIGGER   TO   bsb_write_role; 
GRANT   CREATE   ANY   VIEW   TO   bsb_write_role; 
GRANT   CREATE DATABASE LINK to   bsb_write_role;
grant select any table to bsb_write_role;
grant select any dictionary to bsb_write_role ;

#-----------------------------------------------#
#--給只讀角色 bsb_read_role 授權  
GRANT CONNECT,exp_full_database TO bsb_read_role;
grant SELECT ANY DICTIONARY  to bsb_read_role;
grant select any table  to bsb_read_role;

#-----------------------------------------------#
#--給只讀使用者 bsbview 授予只讀角色 bsb_read_role 
grant role bsb_read_role to user bsbview 

#--給應用使用者 bsbapp 授予DML角色 bsb_write_role 
grant role bsb_write_role to user bsbapp 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22661144/viewspace-1660171/,如需轉載,請註明出處,否則將追究法律責任。

相關文章