C:\Users\Administrator>sqlplus / as sysdba //用超級管理員身份登錄進去 sql
出現如下界面表示登錄成功 數據庫
C:\Users\Administrator>sqlplus / as sysdba session
SQL*Plus:Release 11.2.0.2.0 Production on 星期六 10月 27 10:58:03 2012 ide
Copyrigth(c) 1982, 2010,Oracle. All rights reserved. spa
鏈接到: 對象
Oracle Database 11g Express Edition Release 11.2.0.2.0 - Production 權限控制
SQL>show user; it
USER爲"SYS" io
SQL> table
提示以上信息表示登陸成功。
二、超級管理員建立用戶lisi
SQL>create user lisi identified by lisi;
用戶已建立。
授予會話session、建立表、無限制使用表空間的權限
SQL>grant create session,create table,unlimited tablespace to lisi;
受權成功。
三、超級管理員建立wangwu用戶
SQL>create user wangwu identified by wangwu;
用戶已建立。
授予會話session、建立表、無限制使用表空間的權限
SQL>grant create session,create table,unlimited tablespace to wangwu;
受權成功。
四、用戶wangwu登陸
C:\Users\Administrator>sqlplus wangwu/wangwu
出現如下界面表示登錄成功
C:\Users\Administrator>sqlplus wangwu/wangwu
SQL*Plus:Release 11.2.0.2.0 Production on 星期六 10月 27 11:58:03 2012
Copyrigth(c) 1982, 2010,Oracle. All rights reserved.
鏈接到:
Oracle Database 11g Express Edition Release 11.2.0.2.0 - Production
提示以上信息表示登陸成功。
建立mytable表
SQL>create table mytable (id int);
表已建立。
往mytable表插入數據
SQL>insert into mytable values(1);
已建立1行。
SQL>insert into mytable values(2);
已建立1行。
SQL>commit;
提交成功。
在Oracle數據庫中默認是必需要手動提交才能生效。
五、用超級管理員查看wangwu的mytable表中的數據
SQL>select*from wangwu.mytable;
ID
------------------
1
2
六、讓lisi用戶訪問到wangwu用戶mytable這張表,wangwu用戶把查詢的權限授予lisi用戶
SQL>grant select on mytable to lisi;
受權成功。
登陸lisi用戶:
C:\Users\Administrator>sqlplus lisi/lisi
出現如下界面表示登錄成功
C:\Users\Administrator>sqlplus lisi/lisi
SQL*Plus:Release 11.2.0.2.0 Production on 星期六 10月 27 12:58:03 2012
Copyrigth(c) 1982, 2010,Oracle. All rights reserved.
鏈接到:
Oracle Database 11g Express Edition Release 11.2.0.2.0 - Production
lisi用戶就能夠查詢到wangwu用戶的mytable表的數據
SQL>select*from wangwu.mytable;
ID
------------------
1
2
七、wangwu用戶授予lisi用戶插入數據的權限
SQL>grant insert on mytable to lisi;
受權成功。
八、lisi用戶在wangwu用戶的mytable中插入數據
SQL>insert into wangwu.mytable values(3);
已建立1行。
提交後,查看wangwu 用戶的mytable中的數據
SQL>commit;
提交完成。
SQL>select*from wangwu.mytable;
ID
-------------------
1
2
3
九、wangwu用戶把mytable表的全部權限都授予給lisi用戶
SQL>grant all on mytable to lisi;
受權成功。
lisi用戶就能夠對mytable這張表作任何的操做了
SQL>delete from wangwu.mytable;
已刪除3行。
十、wangwu用戶撤銷lisi用戶的全部權限
SQL>revoke all on mytable from lisi;
撤銷成功。
由以上的操做能夠知道,在Oracle數據庫中對象權限的這塊裏面:誰擁有誰受權。
十一、超級管理員受權全部用戶建立表的權限
SQL>grant create any table to public;
受權成功。
十二、設置命令提示符屏幕的寬度爲350
SQL>set linesize 350
1三、查看當前lisi用戶擁有那些系統權限
SQL>select*from user_sys_privs;
1四、wangwu用戶撤銷lisi用戶對mytable的全部權限
SQL>revoke all on mytable from lisi;
撤銷成功。
1五、權限控制到列,改造mytable表結構,增長多一列
SQL>alter table mytable add name varchar(10);
表已更改。
1六、往mytable表中添加數據
SQL>insert into mytable values(1,'zhang');
已建立1行。
SQL>insert into mytable values(2,'li');
已建立1行。
SQL>insert into mytable values(3,'wang);
已建立1行。
SQL>commit;
提交完成。
SQL>select*from mytable;
ID NAME
------------------------------------------
1 zhang
2 li
3 wang
查詢當前用戶
SQL>show user
USER 爲 "WANGWU"
授予lisi只能更新name這一列的權限,不能更新其餘列
SQL> grant updata(name) on mytable to lisi;
受權成功。
授予lisi只能插入id這一列的權限,不能出入其餘列
SQL>grant insert(id) on mytable to lisi;
受權成功。
lisi用戶把id=1的記錄的name更新爲lihuoming
SQL>update wangwu.mytable set name='lihuoming' where id=1;
已更新1行。
SQL>commit;
提交成功。
wangwu用戶查看mytable表
SQL>select*from mytable;
ID NAME
------------------------------------
1 lihuoming
2 li
3 wang
lisi用戶id列插入一條數據
SQL>insert into wangwu.mytable(id) values(4);
已建立1行。
SQL>commit;
提交完成。
wangwu用戶查看記錄
SQL>select*from mytable;
ID NAME
-----------------------------------------------
1 lihuoming
2 li
3 wang
4
注意:只要更新和插入控制到列,查看和刪除不能控制到列,查看和刪除是整行進行操做,不能只控制到一個單元格。
1六、查看列的控制權限
SQL>select*from user_col_privs;