ORACLE中建立資料表空間,建立表,修改表,授權,oracle授權

來源:互聯網
上載者:User

ORACLE中建立資料表空間,建立表,修改表,授權,oracle授權
建立資料表空間


/*分為四步 */
/*第1步:建立暫存資料表空間  */
create temporary tablespace user_temp  
tempfile 'D:\oracle\oradata\Oracle9i\user_temp.dbf' 
size 50m  
autoextend on  
next 50m maxsize 20480m   //如果最大值沒有上限,則使用unlimited
extent management local;  //extent 表示區間  設定區間管理方式是本地方式   另外一種方式是dictionary 字典方式  ,extent可以理解為表的擴充方式
 
/*第2步:建立資料資料表空間  */
create tablespace user_data  
logging    //表示建立日誌   nologging  表示不建立日誌  
datafile 'D:\oracle\oradata\Oracle9i\user_data.dbf' 
size 50m  
autoextend on  
next 50m maxsize 20480m  
extent management local;  
 
/*第3步:建立使用者並指定資料表空間  */
create user username identified by password  
default tablespace user_data  
temporary tablespace user_temp;  
 
/*第4步:給使用者授予許可權  */
grant connect,resource,dba to username;
grant create table to username






1、首先,grant XXX to user;,grant是授權的作用,這裡的XXX可以是一個角色role,也可以是許可權,例如grant role to user;,或grant insert on table to user;。


MOS中給出的標準SQL語句:


建立角色:


create role <role name> [IDENTIFIED BY <password>/USING <package>/EXTERNALLY/GLOBALLY ];


賦予角色許可權:


grant <object/system privilege> to <role name>;


從角色收回許可權:


revoke <privilege> from <role name>;


將角色賦予另一個角色或使用者:


grant <role> to <username or role> ;


2、其次,connect和resource是兩個系統內建的角色,和dba是並列的關係。


參考一些文章的說法,許可權可以分為兩類:


系統許可權:系統規定使用者使用資料庫的許可權。(系統許可權是對使用者而言)。 


實體許可權:某種許可權使用者對其它使用者的表或視圖的存取許可權。(是針對錶或視圖而言的)。


接下來看系統許可權,


DBA:擁有全部特權,是系統最高許可權,只有DBA才可以建立資料庫結構。


RESOURCE:擁有Resource許可權的使用者只可以建立實體,不可以建立資料庫結構。


CONNECT:擁有Connect許可權的使用者只可以登入Oracle,不可以建立實體,不可以建立資料庫結構。


對於普通使用者:授予connect, resource許可權。 


對於DBA系統管理使用者:授予connect,resource, dba許可權。


且系統許可權只能由DBA使用者授出:sys, system(最開始只能是這兩個使用者)。普通使用者通過授權可以具有與system相同的使用者權限,


但永遠不能達到與sys使用者相同的許可權,system使用者的許可權也可以被回收。


另外,對於WITH ADMIN OPTION級聯授權的問題,


1)如果使用WITH ADMIN OPTION為某個使用者授予系統許可權,那麼對於被這個使用者授予相同許可權的所有使用者來說,取消該使用者的


系統許可權並不會級聯取消這些使用者的相同許可權。 


2)系統許可權無級聯,即A授予B許可權,B授予C許可權,如果A收回B的許可權,C的許可權不受影響;系統許可權可以跨使用者回收,即A可以


直接收回C使用者的許可權。



建立表
 oracle中建立表:
create table users(
       id number(9) not null primary key,
       username varchar2(40) not null,
       age int  check(age>18 and age<50)    
)  


create table orders(
   oid varchar2(10) not null ,
   userid number(9) ,
   primary key (oid),
   foreign key(userid) references users(id)
)


刪除表 :drop table orders


修改表名:alter table orders
          rename  to orderss


添加列:  alter table orders
          add price number(9)


修改列的資料類型:alter table orders
                  modify price number(10)


刪除列 :alter table orders
         drop column price


修改列名:alter table orders
          rename  column price to pri


添加外鍵: alter table orders
           add constraint fkuid foreign key(userid) references users(id)


刪除約束:alter table orders
          drop constraint fkuid

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.