Initial commit
This commit is contained in:
5
Homework/Homework250403/1.txt
Normal file
5
Homework/Homework250403/1.txt
Normal file
@@ -0,0 +1,5 @@
|
||||
1. 数据库的安全性是指保护数据库以防止不合法使用所造成的数据泄露、更改或破坏。
|
||||
4. 用户身份鉴别、多层存取控制、审计、视图和数据加密等。
|
||||
用户身份鉴别方法有静态口令鉴别、动态口令鉴别、生物特征鉴别、智能卡鉴别。
|
||||
存取控制包括定义用户权限和合法权限检查两部分。
|
||||
数据加密主要包括存储加密和传输加密。
|
||||
46
Homework/Homework250403/Q6.sql
Normal file
46
Homework/Homework250403/Q6.sql
Normal file
@@ -0,0 +1,46 @@
|
||||
-- 初始化
|
||||
USE Homework250403;
|
||||
Go
|
||||
CREATE SCHEMA Q6;
|
||||
Go
|
||||
CREATE TABLE Q6.学生(
|
||||
学号 CHAR(10) PRIMARY KEY,
|
||||
姓名 NVARCHAR(20) NOT NULL,
|
||||
年龄 INT,
|
||||
性别 CHAR(1),
|
||||
家庭住址 NVARCHAR(100),
|
||||
班级号 CHAR(10) NOT NULL
|
||||
);
|
||||
Go
|
||||
CREATE TABLE Q6.班级(
|
||||
班级号 CHAR(10) PRIMARY KEY,
|
||||
班级名 NVARCHAR(20) NOT NULL,
|
||||
班主任 NVARCHAR(20),
|
||||
班长 NVARCHAR(20)
|
||||
);
|
||||
Go
|
||||
CREATE LOGIN U1 WITH PASSWORD = 'Password123!';
|
||||
CREATE LOGIN U2 WITH PASSWORD = 'Password123!';
|
||||
CREATE USER U1 FOR LOGIN U1;
|
||||
CREATE USER U2 FOR LOGIN U2;
|
||||
CREATE ROLE R1;
|
||||
Go
|
||||
|
||||
-- 1. 授予用户U1对两个表的所有权限,并可给其他用户授权
|
||||
GRANT SELECT, INSERT, UPDATE, DELETE ON Q6.学生 TO U1 WITH GRANT OPTION;
|
||||
GRANT SELECT, INSERT, UPDATE, DELETE ON Q6.班级 TO U1 WITH GRANT OPTION;
|
||||
Go
|
||||
-- 2. 授予用户U2对学生表具有查看权限,对家庭住址具有更新权限
|
||||
GRANT SELECT ON Q6.学生 TO U2;
|
||||
GRANT UPDATE (家庭住址) ON Q6.学生 TO U2;
|
||||
Go
|
||||
-- 3. 将对班级表查看权限授予所有用户
|
||||
GRANT SELECT ON Q6.班级 TO PUBLIC;
|
||||
Go
|
||||
-- 4. 将对学生表的查询、更新权限授予角色R1
|
||||
GRANT SELECT, UPDATE ON Q6.学生 TO R1;
|
||||
Go
|
||||
-- 5. 将角色R1授予用户U1,并且U1可继续授权给其他角色
|
||||
ALTER ROLE R1 ADD MEMBER U1;
|
||||
GRANT CONTROL ON ROLE::R1 TO U1;
|
||||
Go
|
||||
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