习题6|7第五章习题6(代码片段)

明金同学 明金同学     2022-12-08     250

关键词:

要求:

1.请完成第四章习题6、7题,第五章习题6题。

题目:

第四章 数据库安全性
习题6.对下列两个关系模式∶
学生(学号,姓名,年龄,性别,家庭住址,班级号)
班级(班级号,班级名,班主任,班长)
使用GRANT语句完成下列授权功能∶
(1)授予用户U1对两个表的所有权限,并可给其他用户授权。
(2》授予用户U2对学生表具有查看权限,对家庭住址具有更新权限。
(3)将对班级表查看权限授予所有用户。
(4)将对学生表的查询、更新权限授予角色R1。
(5)将角色R1授予用户U1,并且 UI可继续授权给其他角色。
习题7.今有以下两个关系模式∶
职工(职工号,姓名,年龄,职务,工资,部门号)
部门(部门号,名称,经理名,地址,电话号)
请用 SQL的GRANT 和REVOKE 语句(加上视图机制)完成以下授权定义或存取控制功能∶
(1)用户主明对两个表有SELECT权限。
(2)用户李勇对两个表有 INSERT和DELETE权限。
(3)每个职工只对自己的记录有SELECT权限。
(4)用户刘星对职工表有SELECT权限,对工资字段具有更新权限。
(5)用户张新具有修改这两个表的结构的权限。
(6)用户周平具有对两个表的所有权限(读、插、改、删数据)。并具有给其他用户授权的权限。
(7)用户杨兰具有从每个部门职工中SELECT最高工资、最低工资、平均工资的权限,他不能查看
每个人的工资。
第五章 数据库完整性
习题6.假设有下面两个关系模式∶
职工(职工号,姓名,年龄,职务,工资,部门号),其中职工号为主码∶
部门(部门号,名称,经理名,电话),其中部门号为主码。
用SQL 语言定义这两个关系模式,要求在模式中完成以下完整性约束条件的定义∶
(1)定义每个模式的主码;
(2)定义参照完整性;
(3)定义职工年龄不得超过60岁。

实现内容及记录

第四章 数据库安全性

习题6.对下列两个关系模式∶

学生(学号,姓名,年龄,性别,家庭住址,班级号)
班级(班级号,班级名,班主任,班长)

-- 创建班级表
CREATE TABLE C(
  cid CHAR(20) PRIMARY KEY,
  cname VARCHAR(30) NOT NULL,
  tc VARCHAR(30),
  mc VARCHAR(30)
);
-- 创建学生表
CREATE TABLE S(
  id CHAR(20) PRIMARY KEY,
  sname VARCHAR(30) NOT NULL,
  age INT,
  sex CHAR(2),
  address VARCHAR(100),
  cid CHAR(20),
  FOREIGN KEY (cid) REFERENCES C(cid)
);
CREATE USER U1 FOR LOGIN U_1; -- 新建用户U1
CREATE USER U2 FOR LOGIN U_2; -- 新建用户U2
CREATE ROLE R1; -- 新建角色R1

使用GRANT语句完成下列授权功能∶

(1)授予用户U1对两个表的所有权限,并可给其他用户授权。
GRANT ALL PRIVILEGES 
ON C,S
TO U1
WITH GRANT OPTION;

一次授权在SqlServer2019中无法实现,通过分开执行实现:

-- 授权学生表给用户U1并允许给其他用户授权
GRANT ALL PRIVILEGES 
ON C
TO U1
WITH GRANT OPTION;
-- 授权学生表给用户U1并允许给其他用户授权
GRANT ALL PRIVILEGES 
ON S
TO U1
WITH GRANT OPTION;

(2)授予用户U2对学生表具有查看权限,对家庭住址具有更新权限。
GRANT SELECT,UPDATE(address)
ON S
TO U2;


(3)将对班级表查看权限授予所有用户。

GRANT SELECT
ON C
TO PUBLIC;

(4)将对学生表的查询、更新权限授予角色R1。
GRANT SELECT,UPDATE
ON S
TO R1;

(5)将角色R1授予用户U1,并且 UI可继续授权给其他角色。

课本上写的本应该实现的语句:

GRANT R1
TO U1
WITH GRANT OPTION;

在SQLserver2019中无法实现,使用下面的语句:

EXEC sp_addrolemember 'R1','U1';

习题7.今有以下两个关系模式∶

职工(职工号,姓名,年龄,职务,工资,部门号)
部门(部门号,名称,经理名,地址,电话号)

CREATE TABLE Department(
  sdeptnum CHAR(6) PRIMARY KEY,
  dname CHAR(5) NOT NULL,
  manager CHAR(8) NOT NULL,
  address CHAR(15),
  tel CHAR(11)
);
CREATE TABLE Staff(
  sno CHAR(11) PRIMARY KEY,
  sname CHAR(10) UNIQUE NOT NULL,
  sage INT,
  sjob CHAR(5),
  salary INT,
  sdeptnum CHAR(6) REFERENCES  Department(sdeptnum)
);

请用 SQL的GRANT 和REVOKE 语句(加上视图机制)完成以下授权定义或存取控制功能∶

(1)用户王明对两个表有SELECT权限。
GRANT SELECT 
ON Staff
TO "王明";

GRANT SELECT
ON Department
TO "王明";

(2)用户李勇对两个表有 INSERT和DELETE权限。
GRANT INSERT,DELETE
ON Staff
TO "李勇";

GRANT INSERT,DELETE
ON Department
TO "李勇";
(3)每个职工只对自己的记录有SELECT权限。
-- 建立可查询的视图
CREATE VIEW USERS
AS
SELECT *
FROM Staff
WHERE Staff.Sno=USER;
-- 授权用户查询视图
GRANT SELECT
ON USERS
TO PUBLIC;
(4)用户刘星对职工表有SELECT权限,对工资字段具有更新权限。
GRANT SELECT,UPDATE(salary)
ON Staff
TO "刘星";

(5)用户张新具有修改这两个表的结构的权限。
GRANT ALTER
ON Staff
TO "张新";
GRANT ALTER
ON Department
TO "张新";
(6)用户周平具有对两个表的所有权限(读、插、改、删数据)。并具有给其他用户授权的权限。
GRANT ALL
ON Staff
TO "周平"
WITH GRANT OPTION;

GRANT ALL
ON Department
TO "周平"
WITH GRANT OPTION;

(7)用户杨兰具有从每个部门职工中SELECT最高工资、最低工资、平均工资的权限,他不能查看个人的工资。
-- 创建视图
CREATE VIEW Salary_D(dname,maxsal,minsal,avgsal)
AS
SELECT Department.dname,MAX(Staff.salary),MIN(Staff.salary),AVG(Staff.salary)
FROM Staff,Department
WHERE Staff.sno=Department.sdeptnum
GROUP BY Staff.sno,Department.dname;
-- 查询视图
SELECT * FROM Salary_D;
-- 授权视图的SELECT给杨兰
GRANT SELECT
ON Salary_D
TO "杨兰";

第五章 数据库完整性

习题6.假设有下面两个关系模式∶

职工(职工号,姓名,年龄,职务,工资,部门号),其中职工号为主码∶
部门(部门号,名称,经理名,电话),其中部门号为主码。

CREATE TABLE Departments(
  sdeptnum CHAR(6),
  dname CHAR(5),
  manager CHAR(8),
  tel CHAR(11)
);
CREATE TABLE Staffs(
  sno CHAR(11),
  sname CHAR(10),
  sage INT,
  sjob CHAR(5),
  salary INT
);

用SQL 语言定义这两个关系模式,要求在模式中完成以下完整性约束条件的定义∶

(1)定义每个模式的主码;(2)定义参照完整性;(3)定义职工年龄不得超过60岁。

CREATE TABLE DEPARTMENT(
  ID CHAR(15) PRIMARY KEY,
  Name CHAR(10) UNIQUE NOT NULL,
  Manager CHAR(10) NOT NULL,
  Location SMALLINT,
  PhoneNumber CHAR(11),
);
CREATE TABLE EMPIOYEE(
  ID CHAR(15) PRIMARY KEY,
  Name CHAR(10) NOT NULL,
  Age SMALLINT CHECK(Age<=60),
  Salary Money,
  Job CHAR(20),
  DepartmentId CHAR(15) FOREIGN KEY
  REFERENCES Department(ID) ON DELETE CASCADE
);

网络操作系统第五章习题

    第三章 (1)程序和进程无一一对应关系(2)各个进程在并发执行过程中会产生相互制约关系,而程序本身是静态的,不存在这种异步特征(3)进程是资源分配的基本单位,同一进程的所有线程共享该进程的所有资... 查看详情

第五章课后习题(代码片段)

#创建一个你最喜欢的歌手的列表my_favorite_singers=["周杰伦","邓紫棋"]print(my_favorite_singers)#创建一个由元组构成的列表,每个元组包含城市的经纬度。location=[]上海=(121.43,31.23)北京=(116.40,39.30)location.append(上海)location.append(北京)print(loca... 查看详情

c++primer第五版——习题答案详解(代码片段)

习题答案目录:https://www.cnblogs.com/Mered1th/p/10485695.html第6章函数练习6.4#include<iostream>usingnamespacestd;intfact(intx)if(x==1)returnx;elsereturnx*fact(x-1);intmain()intx;cout<<"Pleaseinputanumber:";while(cin>>x)intans=fact(x);cout<<ans<<e... 查看详情

习题7-6统计大写辅音字母(15分)(代码片段)

英文辅音字母是除A、E、I、O、U以外的字母。本题要求编写程序,统计给定字符串中大写辅音字母的个数。输入格式:输入在一行中给出一个不超过80个字符、并以回车结束的字符串。输出格式:输出在一行中给出字符串中大写... 查看详情

r语言基础题及答案——r语言与统计分析第五章课后习题(汤银才)(代码片段)

R语言与统计分析第五章课后习题(汤银才)题-1设总体XXX是用无线电测距仪测量距离的误差,它服从(α,β)(α,β)(α,β)上的均匀分布,在200次测量中,误差为XiX_iXi​的次数有nin_ini​次:XiX_iXi​3579111315171921nin_ini​21161526221421221825求(α,β)(α,... 查看详情

r语言基础题及答案——r语言与统计分析第五章课后习题(汤银才)(代码片段)

R语言与统计分析第五章课后习题(汤银才)题-1设总体XXX是用无线电测距仪测量距离的误差,它服从(α,β)(α,β)(α,β)上的均匀分布,在200次测量中,误差为XiX_iXi​的次数有nin_ini​次:XiX_iXi​3579111315171921nin_ini​21161526221421221825求(α,β)(α,... 查看详情

第五章习题答案

第五章练习题答案?1.查看配置文件/etc/shadow第一行中root账号的第三个字段(以‘:‘分隔)中的数字,请算一下这个数字是怎么来的?距离1970年1月1日到上次更改密码的时间的间隔天数。例如root密码日期更改时间为2013年9月1日星期... 查看详情

java语言程序设计(第3版)沈泽刚主编第6,7,8章课后习题答案(代码片段)

...va语言程序设计(第3版)沈泽刚主编第6,7,8章课后习题答案第6章字符串6.1编写程序,提示用户输入一个字符串,显示它的长度,第一个字符和最后一个字符。importjava.util.Scanner;publicclassStringDemopublicstaticvoidmain(St... 查看详情

习题6_2s树(s-trees,uva712)(代码片段)

AC代码:#include<cstdio>#include<cstring>intn,m;charx[7][4];chars[1<<7],s2[1<<7];intmain() #ifdefLOCAL freopen("input.txt","r",stdin); freopen("output.t 查看详情

第五章课后习题

1.团队模式和团队的开发模式有什么关系?答:  首先我来解释一下这两个名词:  我查资料了解了一下,团队模式,更偏向于多人合作的那种,而且我理解的“团队”会是一种多人合作的情况下,长期磨合后的一个组织,... 查看详情

数组的简单练习题(代码片段)

1.将一个给定的整型数组转置输出, 例如: 源数组,123456 转置之后的数组,654321packageArray;publicclassarrayTest1publicstaticvoidmain(String[]args)int[]a=1,2,3,4,5,6;intm=a.length;inttemp;for(inti=0;i<m/2;i++)temp=a[i];a[i]=a[m-i-1];a[m-i-1]=temp;for(inti=0;i<m;i+... 查看详情

c语言进阶习题练习6(代码片段)

目录1.公务员面试现场打分。有7位考官,从键盘输入若干组成绩,每组7个分数(百分制),去掉一个最高分和一个最低分,输出每组的平均成绩。2.描述有一个有序数字序列,从小到大排序,将一... 查看详情

习题8-6删除字符(代码片段)

1voiddelchar(char*str,charc)23inti,j;4chara[MAXN];56j=0;7for(i=0;str[i]!=‘ 查看详情

[数据结构]第五章习题作业

1.已知下图是一个森林的孩子-兄弟表示法的存储结构,画出这个森林的逻辑图。ABCDEFGHIJ2.下面的二叉树,请为它建立中序遍历线索。已知一指针p指向E,问从p出发利用线索找到E的第4个后继节点,需要访问几次二叉树的节点(重... 查看详情

网络操作系统第五章课后习题解答

1.比较说明FAT文件系统和NTFS文件系统的特点。  答:FAT文件系统    文件分配表(FileAllocationTable,FAT)是用来记录文件所在位置的表格,它对于硬盘驱动器的使用非常重要,假若文件分配表丢失,那么硬盘上的... 查看详情

矩阵理论及其应用课后习题作业:第五章&第六章

目录前言矩阵理论及其应用课后习题作业:第五章&第六章前言Hello!小伙伴!非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出~ 自我介绍ଘ(੭ˊᵕˋ)੭昵称:海轰标签:程序... 查看详情

网络操作系统第五章习题

1.比较说明FAT文件系统和NTFS文件系统的特点?FAT文件系统原来使用在dos或win9x系列系统上的。有一系列fat16、fat32等,每一代对最大分区大小有一定的限制(比如fat16每个分区最大只支持2G)。一代一代性能逐渐提高。支持目录结... 查看详情

习题6-6使用函数输出一个整数的逆序数(代码片段)

1#include<stdio.h>23intreverse(intnumber);45intmain()67intn;89scanf("%d",&n);10printf("%d\n",reverse(n));1112return0;131415/*你的代码将被嵌在这里*/16intreverse(intnumber)1718intflag=1;19intresult=0 查看详情