Oracle數據庫設置對象權限

一、用超級管理員身份登錄進

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;

相關文章
相關標籤/搜索