對象權限與系統權限
創建表和創建session是系統權限;
系統管理員是有權限去訪問其他表的
以sys登錄
sqlplus sys/on_change_install as sysdba;
創建用戶wangwu
create user wangwu identified by wangwu;
系統權限
grant create session to wangwu;
grant create table to wangwu;
grant unlimited tablespace to wangwu;
grant create table to public;//把創建表的權限給所有的用戶;
撤銷系統權限
revoke create session from wangwu;
revoke create table from wangwu;
revoke unlimited tablespace from wangwu;
查看系統權限
select * from user_sys_privs;
以wangwu登錄
sqlplus wangwu/wangwu;
創建表mytab
create table mytab(id int,name varchar(20));
對象權限
grant all/select/insert/update/delete on mytab to lisi;
撤銷對象權限
revoke all/select/insert/update/delete on mytab from lisi;
查看對象權限
select * from user_tab_privs;
對象權限可以控制到列
grant update(name) on mytab to lisi;
grant insert(id) on mytab to lisi;
查看列權限
select * from user_col_privs;
注意:
查詢和刪除不可以控制到列
注意點:
1,每一個表都是屬於特定的用戶的;
2,如果要操作其他用戶的表時,需要先授予相應的權限;
3,在訪問其他用戶的表時,需要加上前綴用戶名,如wangwu.mytable
4,對其他用戶的表進行插入,更新操作時,需要進行提交(commit),否則表的擁有者不能對表結構進行修改;
誰擁有誰授權,也就是說只有表的擁有者,才有能夠把對表操作的權限授予給其他人
public用戶指的是所有用戶
oracl權限可以對列進行控制,
注意點:但是只能對插入和更新控制到列,查詢和刪除是不能控制到列的
斷開/連接數據庫
disconn/conn
alter table mytable add name varchar(10)