oracle學習筆記(二)

表操作

#修改一個列的數據類型(一般限於修改長度,修改爲一個不同類型時,需要當前列爲空)

oracle最常用的字符類型有三個:char,varchar ,varchar2(推薦使用)

最長字符長度分別是:2000,4000,4000

date類型定義:TODAY DATE "YYYY-MM-DD HH24:MI:SS"

 

ALTER TABLE 表名 MODIFY(列名 數據類型);
如:
ALTER TABLE emp MODIFY(weight NUMBER(3,0) NOT NULL);

#給列改名:
ALTER TABLE 表名 RENAME COLUMN 當前列名 TO 新列名;
如:
ALTER TABLE emp RENAME COLUMN weight TO weight_new;

#將一個表改名:
ALTER TABLE 當前表名 RENAME TO 新表名;
如:
ALTER TABLE bouns RENAME TO bonus_new

給某用戶指定權限

比如用戶A想操作用戶B下的某一個表,那麼可以登錄用戶B輸入以下指令:


grant all on tablename to A;

這樣,A就擁有了B下面 tablename 這個表的所有權限。

同理如果只是想賦某種權限的話,以下語句可供參考:

grant create tablespace to A;

grant select on tabelname to A;

grant update on tablename to A;


grant execute on procedurename to A; 授權存儲過程


grant update on tablename to A with grant option; 授權更新權限給A用戶,A用戶也可以將此權限繼續授權給別人;


但是with grant option 這個命令有個權限管理問題,當管理員給A賦予上述權限時,則A可以把update tablename的權限賦予其他用戶例如D,事後,如果管理員收回A的 with grant option 權限,則D的權限也失效,但管理員卻不能直接從D那收回update tablename 的權限。

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>擴展筆記: with admin option

此命令的權限傳播是不會失效的,例如

管理員給A 賦予 grant create tablespace to A with admin option;

然後 A 又 賦予C grant create tablespace to C;  

於是 A 和 C 分別創建了 table1 和 table2,

此時管理員卻收回了 A的 with admin option 權限 revoke create tablespace from A;

那麼C的 create 權限 卻依然保留,table1 table2 也依然保留。

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

>>>>給所有用戶向表 tablename 插入記錄的權限:

grant all on tablename to public;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章