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;

相关文章
相关标签/搜索