数据库系统概论题目
今有两个关系模式:职工(职工号,姓名,年龄,职务,工资,部门号)部门(部门号,名称,经理名,地址,电话号)请用SQL的GRANT和REVOKE语句(加上视图机制)完成以下...
今有两个关系模式:
职工(职工号,姓名,年龄,职务,工资,部门号)
部门(部门号,名称,经理名,地址,电话号)
请用SQL的GRANT和REVOKE语句(加上视图机制)完成以下授权定义或存取控制功能:
1.每个职工只对自己的记录有SELECT权利;
2.用户扬兰具有从每个部门职工中SELECT最高工资,最低工资,平均工资
的权利,他不能查看每个人的工资.
我把我的积分全部奉上了.那位数据库学的好的帮帮忙啊,
非常谢谢! 展开
职工(职工号,姓名,年龄,职务,工资,部门号)
部门(部门号,名称,经理名,地址,电话号)
请用SQL的GRANT和REVOKE语句(加上视图机制)完成以下授权定义或存取控制功能:
1.每个职工只对自己的记录有SELECT权利;
2.用户扬兰具有从每个部门职工中SELECT最高工资,最低工资,平均工资
的权利,他不能查看每个人的工资.
我把我的积分全部奉上了.那位数据库学的好的帮帮忙啊,
非常谢谢! 展开
2个回答
展开全部
[标准答案]
1、
GRANT SELECT ON 职工
WHEN USER()= NAME
TO ALL;
这里假定系统的 GRANT语句支持WHEN子句和USER()的使用。用户将自己的名字作为ID。
REOVKE SELECT ON 职工
WHEN USER()= NAME
FROM ALL;
这里假定用户将自己的名字作为ID,且系统的REOVKE语句支持WHEN子句,系统也支持USER()的使用。
2、
CREATE VIEW 部门工资统计(最高工资,最低工资,平均工资)
AS SELECT MAX(工资),MIN(工资),AVG(工资)
FROM 职工
GROUP BY 部门号;
GRANT SELECT ON 部门工资统计
TO 扬兰;
REVOKE SELECT ON 部门工资统计
FROM 扬兰;
1、
GRANT SELECT ON 职工
WHEN USER()= NAME
TO ALL;
这里假定系统的 GRANT语句支持WHEN子句和USER()的使用。用户将自己的名字作为ID。
REOVKE SELECT ON 职工
WHEN USER()= NAME
FROM ALL;
这里假定用户将自己的名字作为ID,且系统的REOVKE语句支持WHEN子句,系统也支持USER()的使用。
2、
CREATE VIEW 部门工资统计(最高工资,最低工资,平均工资)
AS SELECT MAX(工资),MIN(工资),AVG(工资)
FROM 职工
GROUP BY 部门号;
GRANT SELECT ON 部门工资统计
TO 扬兰;
REVOKE SELECT ON 部门工资统计
FROM 扬兰;
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询