Initial commit
This commit is contained in:
72
Homework/Homework250403/Q7.sql
Normal file
72
Homework/Homework250403/Q7.sql
Normal file
@@ -0,0 +1,72 @@
|
||||
-- 初始化
|
||||
USE Homework250403;
|
||||
Go
|
||||
CREATE SCHEMA Q7;
|
||||
Go
|
||||
CREATE TABLE Q7.职工 (
|
||||
职工号 VARCHAR(10) PRIMARY KEY,
|
||||
姓名 VARCHAR(20) NOT NULL,
|
||||
年龄 INT,
|
||||
职务 VARCHAR(20),
|
||||
工资 DECIMAL(10, 2),
|
||||
部门号 VARCHAR(10)
|
||||
);
|
||||
CREATE TABLE Q7.部门 (
|
||||
部门号 VARCHAR(10) PRIMARY KEY,
|
||||
名称 VARCHAR(50) NOT NULL,
|
||||
经理名 VARCHAR(20),
|
||||
地址 VARCHAR(100),
|
||||
电话号 VARCHAR(20)
|
||||
);
|
||||
ALTER TABLE Q7.职工
|
||||
ADD CONSTRAINT FK_职工_部门 FOREIGN KEY (部门号) REFERENCES Q7.部门(部门号);
|
||||
Go
|
||||
CREATE LOGIN 王明 WITH PASSWORD = 'Password123!';
|
||||
CREATE USER 王明 FOR LOGIN 王明;
|
||||
CREATE LOGIN 李勇 WITH PASSWORD = 'Password123!';
|
||||
CREATE USER 李勇 FOR LOGIN 李勇;
|
||||
CREATE LOGIN 刘星 WITH PASSWORD = 'Password123!';
|
||||
CREATE USER 刘星 FOR LOGIN 刘星;
|
||||
CREATE LOGIN 张新 WITH PASSWORD = 'Password123!';
|
||||
CREATE USER 张新 FOR LOGIN 张新;
|
||||
CREATE LOGIN 周平 WITH PASSWORD = 'Password123!';
|
||||
CREATE USER 周平 FOR LOGIN 周平;
|
||||
CREATE LOGIN 杨兰 WITH PASSWORD = 'Password123!';
|
||||
CREATE USER 杨兰 FOR LOGIN 杨兰;
|
||||
Go
|
||||
|
||||
-- 1. 用户王明对两个表有SELECT权限
|
||||
GRANT SELECT ON Q7.职工 TO 王明;
|
||||
GRANT SELECT ON Q7.部门 TO 王明;
|
||||
Go
|
||||
-- 2. 用户李勇对两个表有INSERT和DELETE权限
|
||||
GRANT INSERT, DELETE ON Q7.职工 TO 李勇;
|
||||
GRANT INSERT, DELETE ON Q7.部门 TO 李勇;
|
||||
Go
|
||||
-- 3. 每个职工只对自己的记录有SELECT权限
|
||||
CREATE VIEW Q7.职工个人视图 AS
|
||||
SELECT 职工号, 姓名, 年龄, 职务, 工资, 部门号
|
||||
FROM Q7.职工
|
||||
WHERE 姓名 = CURRENT_USER;
|
||||
Go
|
||||
GRANT SELECT ON Q7.职工个人视图 TO PUBLIC;
|
||||
Go
|
||||
-- 4. 用户刘星对职工表有SELECT权限,对工资字段具有更新权限
|
||||
GRANT SELECT ON Q7.职工 TO 刘星;
|
||||
GRANT UPDATE (工资) ON Q7.职工 TO 刘星;
|
||||
Go
|
||||
-- 5. 用户张新具有修改这两个表的结构的权限
|
||||
GRANT ALTER ON SCHEMA::Q7 TO 张新;
|
||||
Go
|
||||
-- 6. 用户周平具有对两个表的所有权限,并具有给其他用户授权的权限
|
||||
GRANT SELECT, INSERT, UPDATE, DELETE ON Q7.职工 TO 周平 WITH GRANT OPTION;
|
||||
GRANT SELECT, INSERT, UPDATE, DELETE ON Q7.部门 TO 周平 WITH GRANT OPTION;
|
||||
Go
|
||||
-- 7. 用户杨兰具有从每个部门职工中SELECT的权限
|
||||
CREATE VIEW Q7.部门职工视图 AS
|
||||
SELECT 职.*, 部.名称 AS 部门名称
|
||||
FROM Q7.职工 职
|
||||
JOIN Q7.部门 部 ON 职.部门号 = 部.部门号;
|
||||
Go
|
||||
GRANT SELECT ON Q7.部门职工视图 TO 杨兰;
|
||||
Go
|
||||
Reference in New Issue
Block a user