Files
Database/Homework/Homework250403/Q7.sql
2025-11-06 09:53:12 +08:00

72 lines
2.6 KiB
Transact-SQL
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
-- 初始化
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