2年 ago mqzi
姓名: |
郭佳堃 | 学号: |
1507112106 | |
专业: |
商务智能 | 班级: |
商务智能 | |
同组人: |
无 |
实验日期: |
2017/07/06 | |
【实验目的与要求】
掌握ORACLE数据表进行用户授权,取消权限等相关数据控制命令;
掌握对数据库表结构修改的方法:
【实验内容与步骤】
创建用户就是在数据库中增加一个用户帐户,用户可以使用该帐户访问数据库。
可以使用 create user 创建账户,语法形式如下:
create user user_name
identified by password
其中:
user_name指定将要创建的数据库用户的名称
password指定该数据库用户的口令。
在创建用户时,创建者应该具有create user系统权限。
实验-1:创建用户
以scott/tiger身份创建一个用户DEMO,其口令是window.
请给出执行结果截图:
实验练习:连接测试
以DEMO /window身份连接数据库,看是否可以连上?
请给出执行结果截图:
说明:创建用户之后,如果没有为该用户授予相应的连接数据库的权限,该用户依然不能连接到数据库中。需要为用户授予create session的权限。
语法如下:
grant create session to user_name
为了保护数据库的安全,用户口令应该经常修改。可以使用两种方式修改用户口令。第一种方式是使用alter user语句修改用户的口令.
语法形式如下:
alter user user_name
identified by new_password
第二种方式是使用password命令。
前一种既可以修改当前用户的口令,也可以修改其他用户的口令;后一种只能用来修改当前用户的口令。
实验-2:更改口令
以scott/tiger身份连接到数据库,将前面创建的用户DEMO口令改为demo.
请给出相应命令和执行结果截图:
注意:SCOTT 登录的密码是 TIGER,而 DEMO 登录的密码为前面创建用户之密码。
8.2.1 授予特定的权限
实验-3:授予特定用户特定的权限
要将emp 表上的SELECT 权限授予DEMO,请给出如图所示的命令。
请给出执行结果截图:
‘
实验-4:授予特定用户特定的权限
(1)连接与查询:请执行如下图中所示的步骤
在下面的命令中,首先连接到 DEMO 登录,然后发出查询语句,在那里,在指定表名称时需把模式名放在了表名称的前面。
请给出执行结果截图:
(2)试着对表执行如图下图中所示的操作,理解权限管理。
请给出执行结果截图:
思考:为什么第(2)中的语句没能执行成功?要使其能执行成功,该如何操作?写出相应的过程。
Grant delete on emp to DEMO1;
8.2.2 授予所有权限
在上面的实验中,已经了解如何授予特定权限。
实验-5:向其他用户授予所有权限
下面是一个可以向其他用户授予所有权限的实验,执行如图中所示的步骤,向其他用户授予所有权限。
实验中,首先连接到 SCOTT,然后,我们向 DEMO 授予了所有权限。授予权限后,连接到 DEMO 登录。
首先发出从授予表中查看所有记录的选择语句。
(1)连接与查询
请给出执行结果截图:
(2)修改表中数据
完成查询后,更新记录以更改表中的值,如下图:
请给出执行结果截图:
(2)删除表
以Demo用户名连接到数据库,在sql plus中执行如下命令:drop table scott.dept
请给出执行结果截图:
小结:授予所有权限后,被授权人就可执行所有 DML 任务;被授权人不能删除表,即使授权人给予其 ALL 权限。
8.2.3 理解 WITH GRANT OPTION
到现在为止,明白了对象的所有者(授权人)向另一个用户(被授权人)授予权限。而且,被授权人根据其所拥有的权限利用对象。但是,有时被授权人本身想向第三个用户授予授权人表。假如主授权人利用 WITH GRANT OPTION 授予了该表,正常情况下,被授权人无法这样做。
实验-6:下面看看一个使用 WITH GRANT OPTION 的示例。
准备工作
使用create …as…命令基于emp创建表ret_emp;
创建用户ani,口令为ani,并授予连接(connect)权限;
请给出执行结果截图:
(2)执行如图中所示的步骤
DEMO 将 Scott 的表授予用户 ANI 之后,ANI 访问该表的方式显示在下图之中。执行如下步骤,了解整个情况。
现在,由于 SCOTT 已授予 DEMO 所有权限。DENO 在向 ANI 授予表时可授予任何权限。但是,假定 SCOTT 只授予对表的选择权限,则 DEMO 就只能向 ANI 授予选择权限。接下来的步骤是,DEMO 向 ANI 授予权限,DEMO 只授予对表的插入权限。因此,当 ANI 试图使用选择语句时,他就会收到出错信息。但是,他可以正常插入值。
我们使用 GRANT 命令向用户授予权限。而 REVOKE 用来从用户那里撤消权限。
实验-7:执行如下图中所示的步骤,撤消 DEMO 对 ret_emp 表的权限。
注意:当 SCOTT 撤回 DEMO 的权限后,DEMO 授予 ANI 的权限也自动撤消。您也可以一次只从被授权人撤回某项特定权限。
实验练习:以DEMO用户连接数据库,试着对表 ret_emp进行查询、更新和删除操作,给出实验结果。
Previous 管理索引、序列和其他模式对象
Next Oracle数据库体系结构与备份恢复