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;