Oracle数据库设置对象权限

谁说胖子不能爱 提交于 2019-12-07 03:29:14
1、用超级管理员身份登陆进

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;

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!