C:\Users\Administrator>sqlplus / as sysdba //用超级管理员身份登陆进去
出现以下界面表示登陆成功
C:\Users\Administrator>sqlplus / as sysdba
SQL*Plus:Release 11.2.0.2.0 Production on 星期六 10月 27 10:58:03 2012
Copyrigth(c) 1982, 2010,Oracle. All rights reserved.
连接到:
Oracle Database 11g Express Edition Release 11.2.0.2.0 - Production
SQL>show user;
USER为"SYS"
SQL>
提示以上信息表示登录成功。
2、超级管理员创建用户lisi
SQL>create user lisi identified by lisi;
用户已创建。
授予会话session、创建表、无限制使用表空间的权限
SQL>grant create session,create table,unlimited tablespace to lisi;
授权成功。
3、超级管理员创建wangwu用户
SQL>create user wangwu identified by wangwu;
用户已创建。
授予会话session、创建表、无限制使用表空间的权限
SQL>grant create session,create table,unlimited tablespace to wangwu;
授权成功。
4、用户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数据库中默认是必须要手动提交才能生效。
5、用超级管理员查看wangwu的mytable表中的数据
SQL>select*from wangwu.mytable;
ID
------------------
1
2
6、让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
7、wangwu用户授予lisi用户插入数据的权限
SQL>grant insert on mytable to lisi;
授权成功。
8、lisi用户在wangwu用户的mytable中插入数据
SQL>insert into wangwu.mytable values(3);
已创建1行。
提交后,查看wangwu 用户的mytable中的数据
SQL>commit;
提交完成。
SQL>select*from wangwu.mytable;
ID
-------------------
1
2
3
9、wangwu用户把mytable表的所有权限都授予给lisi用户
SQL>grant all on mytable to lisi;
授权成功。
lisi用户就可以对mytable这张表做任何的操作了
SQL>delete from wangwu.mytable;
已删除3行。
10、wangwu用户撤销lisi用户的所有权限
SQL>revoke all on mytable from lisi;
撤销成功。
由以上的操作可以知道,在Oracle数据库中对象权限的这块里面:谁拥有谁授权。
11、超级管理员授权所有用户创建表的权限
SQL>grant create any table to public;
授权成功。
12、设置命令提示符屏幕的宽度为350
SQL>set linesize 350
13、查看当前lisi用户拥有那些系统权限
SQL>select*from user_sys_privs;
14、wangwu用户撤销lisi用户对mytable的所有权限
SQL>revoke all on mytable from lisi;
撤销成功。
15、权限控制到列,改造mytable表结构,增加多一列
SQL>alter table mytable add name varchar(10);
表已更改。
16、往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
注意:只要更新和插入控制到列,查看和删除不能控制到列,查看和删除是整行进行操作,不能只控制到一个单元格。
16、查看列的控制权限
SQL>select*from user_col_privs;
来源:oschina
链接:https://my.oschina.net/u/273709/blog/85670