实验四 oracle的安全性和完整性控制
实验目的:
1. 通过本实验能够熟练应用sql语言进行用户权限的授予和回收。
2. 熟练掌握实体完整性,参照完整性及用户定义的完整性的定义。
3. 并体会oracle数据库系统在安全性和完整性保护方面的特性。
实验要求:
1. 在进行本实验之前,应熟练课程内容,在上机之前做好实验计划,编写好相应的代码。
实验内容:
Grant 语句的格式:
Grant <权限> [,<权限>]…
On <对象名>
To <用户> [,<用户>]…
[with grant option]
Public 全体用户
如果指定了[with grant option],则获得某种权限的用户还可以把这种权限再授予其他用户。但不允许循环授权。
(一) 授权
1. 以dba用户的身份登陆oracle,创建用户u1+学号后四位,u2+学号后四位。
createuser u1_4128 IDENTIFIEDBY j123456;
createuser u2_4128 IDENTIFIEDBY j123456;
2. 对1.中创建的用户授予connect,resource的权限。
SQL> grant connect to u1_4128,u2_4128;
Grantsucceeded
SQL> grant resource to u1_4128,u2_4128;
Grantsucceeded
或者:
SQL> grant connect,resource to u1_4128,u2_4128;
Grantsucceeded
3. 用户jsj***把查询Student表权限授给用户u1+学号后四位,u1执行相应的查询。
SQL> grant select on student to u1_4128;
Grantsucceeded
1) 查询jsj***用户的全体学生的详细记录。
登录u1_4128用户后
SQL> select * from j2014224128.student;
SNO SNAME SSEX SAGE SDEPT
--------- -------- ---- ---- --------------------
20070001 李佳 女 20 MA
20070003 王添 男 18 MA
20070004 张力 女 21 IS
20070005 张力 女 19 CS
20070006 张力 男 19 MA
224128 庞振男 女 20 IT
224129 庞阿男 男 22 MA
1254 nana lal
8 rows selected
2) 查询jsj***用户的所有姓刘的学生的姓名、学号和性别。(张)
SQL> select sname,sno,ssex from j2014224128.student where sname like '张%';
SNAME SNO SSEX
-------- --------- ----
张力 20070004 女
张力 20070005 女
张力 20070006