数据库授权与约束定义sql语句


/* 学生表Student
	班级表Class 
(1)授予用户U1对两个表的所有权限,并可给其他用户授权。
(2)将对学生表的查询、更新权限授予角色R1。
(3)将角色R1授予用户U1,并且U1可继续授权给其他角色。
*/
grant all privileges on Student,Class to U1 with grant option;

grant select ,update on Student to R1;

grant R1 to U1 with admin option;


/*今有一下两个关系模式:
职工(职工号,姓名,年龄,职务,工资,部门号)
部门(部门号,名称,经理名,地址,电话号)
使用GRANT和REVOKE语句完成以下授权定义或存取控制功能:
1.用户李勇对两个表有insert和delete权限
2.用户刘星对职工表有select权限,对工资字段有更新权限
3.用户周平具有对两个表的所有权限,并具有给其他用户授权的权限
4.用户杨兰具有从每个部门职工中select最高工资,最低工资,平均工资的权限,他不能查看每个人的工资*/
GRANT INSERT,DELETE
ON Employee
TO LIYONG;
GRANT INSERT,DELETE
ON Department
TO LIYONG;

GRANT SELECT
ON Employee
TO LIUXING;
GRANT UPDATE
ON Department.Salary
TO LIUXING;

GRANT ALL 
ON Employee
to ZHOUPING 
WITH GRANT OPTION;

CREATE VIEW SL(DS_name,maxs,mins,avgs)
AS
SELECT Department.Name,max(Salary),min(Salary),avg(Salary)
FROM Employee,Department
WHERE Employee.Stnum=Department.PhoneNumber
GROUP BY Employee.Salary,Department.Name;
GRANT SELECT
ON SL
TO YANGLAN;



/*
假设有下面两个关系模式:
职工(职工号,姓名,年龄,职务,工资,部门号),其中职工号为主码;
部门(部门号,名称,经理名,电话),其中部门号为主码。
用SQL 语言定义这两个关系模式,要求在模式中完成以下完整性约束条件的定义:
(1) 定义每个模式的主码; (2) 定义参照完整性; (3) 定义职工年龄不得超过60 岁。*/
CREATE TABLE EMPLOYEE
(
EMPLOYEE_ID CHAR(5) PRIMARY KEY,
E_NAME CHAR(8) NOT NULL,
AGE SMALLINT,
DUTY CHAR(10),
SALARY DECIMAL(7,2),
DEPARTMENT_ID CHAR(5)
);

CREATE TABLE DEPARTMENT
(
DEPARTMENT_ID CHAR(5)PRIMARY KEY,
D_NAME CHAR(20),
MANAGER CHAR(8)NOT NULL,
TELEPHONE CHAR(8)
);
ALTER TABLE EMPLOYEE ADD CONSTRAINT C1 CHECK(AGE<60);
ALTER TABLE EMPLOYEE ADD CONSTRAINT C2 FOREIGN KEY (DEPARTMENT_ID) REFERENCES DEPARTMENT(DEPARTMENT_ID);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WaitIKnowYou

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值