1、第 5周家庭作业数学与计算科学学院 统计学 08374056 陈婷姗一 运用 Oracle的图形界面 Enterprise Manager进行以下操作,描述操作步骤1 给 EMP表在 JOB列上创建索引登录 OEM 单击“管理” 单击“方案/数据库对象/索引” 单击“创建” 输入:名称ind_emp_job,方案scott,表空间users,索引类型位图,索引建于表,表名scott.emp 单击“置入列” 找到 job所在的行,在该行对应于“顺序”一列的空白处输入 1 单击“确定”,完成2 创建序列 abc,首项为 5,公差为 20登录 OEM 单击“管理” 单击“方案/数据库对象/序列” 单
2、击“创建” 输入:名称abc,方案scott,最大值无限制,最小值5,间隔20,初始值5 单击“确定”,完成3 为 SCOTT的表 DEPT创建同义词 d0登录 OEM 单击“管理” 单击“方案/数据库对象/同义词” 单击“创建” 输入:名称d0,类型方案scott,对象scott.dept 单击“确定”,完成4 为 SCOTT的表 DEPT创建公共同义词 d1登录 OEM 单击“管理” 单击“方案/数据库对象/同义词” 单击“创建” 输入:名称d1,类型公用,对象scott.dept 单击“确定”,完成5 创建新用户 a1,口令为 abcd登录 OEM 单击“管理” 单击“方案/用户和权限/
3、用户” 单击“创建” 输入:名称a1,输入口令abcd,确认口令abcd 单击“确定”,完成6 修改用户 a1的口令为 xyz选中用户 a1 单击“编辑” 输入:输入口令xyz,确认口令xyz 单击“应用”,完成7 给用户 a1授予能登录进入系统的权限选中用户 a1 单击“编辑” 单击“系统权限” 单击“编辑列表” 在“可用系统权限”里找到“create session”,并将它移动到右边的“所选系统权限”里 单击“确定” 单击“应用”,完成8 给用户 a1授予能创建新用户的系统特权选中用户 a1 单击“编辑” 单击“系统权限” 单击“编辑列表” 在“可用系统权限”里找到“create use
4、r”,并将它移动到右边的“所选系统权限”里 单击“确定” 单击“应用”,完成9 给用户 a1授予能访问 SCOTT的 DEPT表的对象特权选中用户 a1 单击“编辑” 单击“对象权限” 在“选择对象类型”下拉表里选中“表”,单击“添加” 在“选择 表 对象” 方框里输入“scott.dept”,然后在“可用权限”里找到“select”,并将它移动到右边的“所选权限”里 单击“确定” 单击“应用”,完成10 建立一个角色,包含能创建新用户的系统特权,以及能访问 SCOTT的 DEPT表的对象特权,然后将其授予 a1登录 OEM 单击“管理” 单击“方案/用户和权限/角色” 单击“创建” 输入:名
5、称r1 单击“确定” 选中角色 r1 单击“编辑” 单击“系统权限” 单击“编辑列表” 在“可用系统权限”里找到“create user”,并将它移动到右边的“所选系统权限”里 单击“确定” 单击“应用” 单击“对象权限” 在“选择对象类型”下拉表里选中“表”,单击“添加” 在“选择 表 对象” 方框里输入“scott.dept”,然后在“可用权限”里找到“select”,并将它移动到右边的“所选权限”里 单击“确定” 单击“应用” 回到“管理”界面,单击“方案/用户和权限/角色” 选中用户 a1 单击“编辑” 单击“角色” 单击“编辑列表” 在“可用角色”里找到 r1,并将它移动到右边的“所
6、选角色”里 单击“确定” 单击“应用”,完成二 建立一张新表,记录 emp表中的员工姓名,总收入,总收入名次,要求用两种不同的方法(rownum 和 sequence)来建立(insert)具体数据方法一:SQL create table x2 as select ename,sal+nvl(comm,0) income,rownum num3 from (select * from emp order by sal+nvl(comm,0) desc);表已创建。SQL select * from x;ENAME INCOME NUM- - -KING 5000 1FORD 3000 2SCO
7、TT 3000 3JONES 2975 4BLAKE 2850 5MARTIN 2650 6CLARK 2450 7ALLEN 1900 8WARD 1750 9TURNER 1500 10MILLER 1300 11ENAME INCOME NUM- - -ADAMS 1100 12JAMES 950 13SMITH 800 14已选择 14行。方法二:SQL create sequence abc increment by 1;序列已创建。SQL create table y2 as select ename,sal+nvl(comm,0) income,abc.nextval num3
8、from (select * from emp order by sal+nvl(comm,0) desc);表已创建。SQL select * from y;ENAME INCOME NUM- - -KING 5000 1FORD 3000 2SCOTT 3000 3JONES 2975 4BLAKE 2850 5MARTIN 2650 6CLARK 2450 7ALLEN 1900 8WARD 1750 9TURNER 1500 10MILLER 1300 11ENAME INCOME NUM- - -ADAMS 1100 12JAMES 950 13SMITH 800 14已选择 14行
9、。三 建立新用户 a1和 a2,并授予适当的权限使其能连入系统1 sys向 a1用 with admin option的方式授予 create user权,a1 再把此权限授予给 a2。然后 sys从 a1收回 create user权限。检验此时 a2还是否可以建立新用户可以实验过程如下:SQL connect / as sysdba已连接。SQL create user a1 identified by abc;用户已创建。SQL grant create session to a1;授权成功。SQL create user a2 identified by xyz;用户已创建。SQL g
10、rant create session to a2;授权成功。SQL grant create user to a1 with admin option;授权成功。SQL connect a1/abc已连接。SQL grant create user to a2;授权成功。SQL connect / as sysdba已连接。SQL revoke create user from a1;撤销成功。SQL connect a2/xyz已连接。SQL create user a3 identified by “123“;用户已创建。2 scott用 with grant option的方式向 a1
11、授予 emp表的 select权,a1 再把此权授予给 a2,然后 scott从 a1处收回此权。检验此时 a2是否还可以访问scott的 emp表不可以实验过程如下:SQL connect scott/tiger已连接。SQL grant select on emp to a1 with grant option;授权成功。SQL connect a1/abc已连接。SQL grant select on scott.emp to a2;授权成功。SQL connect a2/xyz已连接。SQL select * from scott.emp;EMPNO ENAME JOB MGR HIR
12、EDATE SAL COMM DEPTNO - - - - - - - - 7369 SMITH CLERK 7902 17-12月-80 800 207499 ALLEN SALESMAN 7698 20-2月 -81 1600 300 307521 WARD SALESMAN 7698 22-2月 -81 1250 500 307566 JONES MANAGER 7839 02-4月 -81 2975 207654 MARTIN SALESMAN 7698 28-9月 -81 1250 1400 307698 BLAKE MANAGER 7839 01-5月 -81 2850 30778
13、2 CLARK MANAGER 7839 09-6月 -81 2450 107788 SCOTT ANALYST 7566 19-4月 -87 3000 207839 KING PRESIDENT 17-11月-81 5000 107844 TURNER SALESMAN 7698 08-9月 -81 1500 0 307876 ADAMS CLERK 7788 23-5月 -87 1100 207900 JAMES CLERK 7698 03-12月-81 950 307902 FORD ANALYST 7566 03-12月-81 3000 207934 MILLER CLERK 7782 23-1月 -82 1300 10已选择 14行。SQL connect scott/tiger已连接。SQL revoke select on emp from a1;撤销成功。SQL connect a2/xyz已连接。SQL select * from scott.emp;select * from scott.emp*第 1 行出现错误:ORA-00942: 表或视图不存在