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
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。