Initial commit
This commit is contained in:
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
|
||||
Reference in New Issue
Block a user