用户管理、权限与数据安全

  • ORACLE

用户管理、权限与数据安全

2年 ago mqzi

实验8 用户管理、权限与数据安全

姓名:

郭佳堃  

学号:

1507112106

专业:

商务智能  

班级:

商务智能

同组人:

 

实验日期:

2017/07/06
         

【实验目的与要求】

  • 掌握ORACLE数据表进行用户授权,取消权限等相关数据控制命令;

  • 掌握对数据库表结构修改的方法:

    • 变更表和约束
    • 删除表和约束

    【实验内容与步骤】

  1. 创建用户

创建用户就是在数据库中增加一个用户帐户,用户可以使用该帐户访问数据库。

可以使用 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.

请给出相应命令和执行结果截图:

  1. 授予权限

注意: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 的示例。

  1. 准备工作

  2. 使用create …as…命令基于emp创建表ret_emp;

  3. 创建用户ani,口令为ani,并授予连接(connect)权限;

请给出执行结果截图:

(2)执行如图中所示的步骤

DEMO 将 Scott 的表授予用户 ANI 之后,ANI 访问该表的方式显示在下图之中。执行如下步骤,了解整个情况。

现在,由于 SCOTT 已授予 DEMO 所有权限。DENO 在向 ANI 授予表时可授予任何权限。但是,假定 SCOTT 只授予对表的选择权限,则 DEMO 就只能向 ANI 授予选择权限。接下来的步骤是,DEMO 向 ANI 授予权限,DEMO 只授予对表的插入权限。因此,当 ANI 试图使用选择语句时,他就会收到出错信息。但是,他可以正常插入值。

  1. 撤消权限

    我们使用 GRANT 命令向用户授予权限。而 REVOKE 用来从用户那里撤消权限。

    实验-7:执行如下图中所示的步骤,撤消 DEMO 对 ret_emp 表的权限。

注意:当 SCOTT 撤回 DEMO 的权限后,DEMO 授予 ANI 的权限也自动撤消。您也可以一次只从被授权人撤回某项特定权限。

实验练习:以DEMO用户连接数据库,试着对表 ret_emp进行查询、更新和删除操作,给出实验结果。

Continue Reading

Previous 管理索引、序列和其他模式对象

Next Oracle数据库体系结构与备份恢复

你可能感兴趣的:(用户管理、权限与数据安全)