实验指导书——大型数据库应用(4)

2019-05-24 17:42

DROP PUBLIC SYNONYM scottemp;

【实验内容】

Class表的结构: 列名 数据类型 CNO NUMBER(2) CNAME VARCHAR2(20) NUM NUMBER(3) Student表的结构: 列名 数据类型 SNO NUMBER(4) SNAME VARCHAR2(10) SAGE NUMBER SEX CHAR(2) CNO NUMBER(2) 约束 主键 备注 班号 班名 人数 约束 主键 唯一 备注 学号 姓名 年龄 性别 班级号 要求:

1. 创建Class、Student两个表;

2. 为Student表添加一个外键约束,其CNO列参照class表的CNO列; 3. 为Student表的sex列添加一个检查约束,保证该列取值为“M”或“F”,且默认值为“M”; 4. 在class表的CNAME列上创建一个唯一性索引; 5.创建一个索引化表,其表结构与Student表相同;

6.创建一个Student_range表(列、类型与student表的列、类型相同),按学生年龄分为3个区,低于20岁的学生信息放入part1区,存储在stbs1表空间中;20-30岁的学生信息放在part2区,存储在stbs2表空间中;其他数据放在part2区,存储在stbs3表空间中。 7. 创建一个Student_list表(列、类型与student表的列、类型相同),按学生性别分为两个区。

8.创建一个class_number簇,聚簇字段名为CNO,类型为NUMBER(2)。然后利用该簇,创建students和classes两个聚簇表。

9.创建一个起始值为10000的序列,步长为2,最大值为1000000,不可循环。

实验三 安全管理

【开发语言及实现平台或实验环境】

Oracle10g

【实验目的】

练习创建用户、用户的授权、创建角色、将角色授权给用户等安全管理命令

【实验原理】 一、用户管理 1创建用户 基本语法:

CREATE USER user_name IDENTIFIED [BY password|EXTERNALLY|GLOBALLY AS 'external_name']

[DEFAULT TABLESPACE tablespace_name]

[TEMPORARY TABLESPACE temp_tablesapce_name] [QUOTA n K|M|UNLIMITED ON tablespace_name] [PROFILE profile_name] [PASSWORD EXPIRE]

[ACCOUNT LOCK|UNLOCK];

注意:在创建新用户后,必须为用户授予适当的权限。例如,授予用户CREATE SESSION权限后,用户才可以连接到数据库。 参数说明:

user_name:用于设置新建用户名,在数据库中用户名必须是唯一的; IDENTIFIED:用于指明用户身份认证方式;

BY password:用于设置用户的数据库身份认证,其中password为用户口令; EXTERNALLY:用于设置用户的外部身份认证; GLOBALLY AS'external_name':用于设置用户的全局身份认证,其中external_name为Oracle的安全管理服务器相关信息;

DEFAULT TABLESPACE:用于设置用户的默认表空间,如果没有指定,Oracle将数据库默认表空间作为用户的默认表空间;

TEMPORARY TABLESPACE:用于设置用户的临时表空间;

QUOTA:用于指定用户在特定表空间上的配额,即用户在该表空间中可以分配的最大空间; PROFILE:用于为用户指定概要文件,默认值为DEFAULT,采用系统默认的概要文件; PASSWORD EXPIRE:用于设置用户口令的初始状态为过期,用户在首次登录数据库时必须修改口令;

ACCOUNT LOCK:用于设置用户初始状态为锁定,默认为不锁定;

ACCOUNT UNLOCK:用于设置用户初始状态为不锁定或解除用户的锁定状态。

实例:

创建一个用户user3,口令为user3,默认表空间为USERS,在该表空间的配额为10 MB,

初始状态为锁定。

CREATE USER user3 IDENTIFIED BY user3

DEFAULT TABLESPACE USERS QUOTA 10M ON USERS ACCOUNT LOCK;

创建一个用户user4,口令为user4,默认表空间为USERS,在该表空间的配额为10 MB。口令设置为过期状态,即首次连接数据库时需要修改口令。概要文件为example_profile(假设该概要文件已经创建)。

CREATE USER user4 IDENTIFIED BY user4 DEFAULT TABLESPACE USERS QUOTA 10M ON USERS PROFILE example_profile PASSWORD EXPIRE;

2. 修改用户 基本语法:

ALTER USER user_name [IDENTIFIED] [BY password|EXTERNALLY|GLOBALLY AS 'external_name']

[DEFAULT TABLESPACE tablespace_name]

[TEMPORARY TABLESPACE temp_tablesapce_name] [QUOTA n K|M|UNLIMITED ON tablespace_name] [PROFILE profile_name]

[DEFAULT ROLE role_list|ALL [EXCEPT role_list] |NONE]

[PASSWORD EXPIRE]

[ACCOUNT LOCK|UNLOCK]; 参数说明:

role_list:角色列表; ALL :表示所有角色;

EXCEPT role_list:表示除了role_list列表中的角色之外的其他角色; NONE:表示没有默认角色。

注意,指定的角色必须是使用GRANT命令直接授予该用户的角色。 实例:

将用户user3的口令修改为newuser3,同时将该用户解锁。 ALTER USER user3

IDENTIFIED BY newuser3 ACCOUNT UNLOCK;

3. 删除用户 基本语法

DROP USER user_name [ CASCADE ]; 步骤

先删除用户所拥有的对象 再删除用户

将参照该用户对象的其他数据库对象标志为INVALID

实例:

DROP USER users4;

二、权限管理 1. 系统权限管理 (1) 系统权限的授权 语法:

GRANT sys_priv_list TO user_list|role_list|PUBLIC [WITH ADMIN OPTION]; 参数说明:

sys_priv_list:表示系统权限列表,以逗号分隔; user_list:表示用户列表,以逗号分隔; role_list:表示角色列表,以逗号分隔; PUBLIC:表示对系统中所有用户授权;

WITH ADMIN OPTION:表示允许系统权限接收者再把此权限授予其他用户。 例:

为用户user1授予CREATE SESSION,CREATE TABLE,CREATE INDEX系统权限。 CONNECT SYSTEM/MANAGER@ORCL;

GRANT CREATE SESSION,CREATE TABLE,CREATE VIEW TO user1;

为用户user2授予CREATE SESSION,CREATE TABLE ,CREATE INDEX系统权限。user2获得权限后,为用户user3授予CREATE TABLE权限。 CONNECT SYSTEM/MANAGER@ORCL; GRANT CREATE SESSION,CREATE TABLE, CREATE VIEW TO user2 WITH ADMIN OPTION; CONNECT user2/user2 @ORCL GRANT CREATE TABLE TO user3;

(2)系统权限的回收 语法:

REVOKE sys_priv_list

FROM user_list|role_list|PUBLIC;

例:回收user1的CREATE TABLE,CREATE VIEW 权限,语句为: CONNECT SYSTEM/MANAGER@ORCL;

REVOKE CREATE TABLE,CREATE VIEW FROM user1;

2. 对象权限的管理 (1) 对象权限的授权 语法:

GRANT obj_priv_list|ALL ON [schema.]object TO user_list|role_list [WITH GRANT OPTION]; 参数说明:

obj_priv_list:表示对象权限列表,以逗号分隔;

[schema.]object:表示指定的模式对象,默认为当前模式中的对象; user_list:表示用户列表,以逗号分隔; role_list:表示角色列表,以逗号分隔;

WITH GRANT OPTION:表示允许对象权限接收者把此对象权限授予其他用户。

例:将scott模式下的emp表的SELECT,UPDATE,INSERT权限授予user1用户。 CONNECT SYSTEM/MANAGER@ORCL;

GRANT SELECT,INSERT,UPDATE ON scott.emp TO user1;

例:将scott模式下的emp表的SELECT,UPDATE,INSERT权限授予user2用户。user2用户再将emp表的SELECT,UPDATE权限授予user3用户。 CONNECT SYSTEM/MANAGER@ORCL;

GRANT SELECT,INSERT,UPDATE ON scott.emp TO user2 WITH GRANT OPTION; CONNECT user2/user2@ORCL

GRANT SELECT,UPDATE ON scott.emp TO user3;

(2) 对象权限的回收 语法:

REVOKE obj_priv_list | ALL ON [schema.]object FROM user_list|role_list;

三、角色管理 1、创建角色 语法为

CREATE ROLE role_name [NOT IDENTIFIED][IDENTIFIED BY password]; 参数说明

role_name:用于指定自定义角色名称,该名称不能与任何用户名或其他角色相同; NOT IDENTIFIED:用于指定该角色由数据库授权,使该角色生效时不需要口令; IDENTIFIED BY password:用于设置角色生效时的认证口令。

例如,创建不同类型的角色。 CREATE ROLE high_manager_role;

CREATE ROLE middle_manager_role IDENTIFIED BY middlerole; CREATE ROLE low_manager_role IDENTIFIED BY lowrole;

2、角色权限的授予与回收 实例:

GRANT CONNECT,CREATE TABLE,CREATE VIEW TO low_manager_role; GRANT CONNECT,CREATE TABLE,CREATE VIEW TO middle_manager_role; GRANT CONNECT,RESOURCE,DBA TO high_manager_role;

GRANT SELECT,UPDATE,INSERT,DELETE ON scott.emp TO high_manager_role; REVOKE CONNECT FROM low_manager_role;

REVOKE CREATE TABLE,CREATE VIEW FROM middle_manager_role;

REVOKE UPDATE,DELETE ,INSERT ON scott.emp FROM high_manager_role;


实验指导书——大型数据库应用(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2018年华罗庚金杯少年数学邀请赛香港赛区决赛初中一年级组试题答

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: