初步完成lab4代码
This commit is contained in:
parent
659e5f0ebd
commit
398d2c6e26
35
Assignments/Assignment4/src/privilege.sql
Normal file
35
Assignments/Assignment4/src/privilege.sql
Normal file
@ -0,0 +1,35 @@
|
||||
DROP USER 'ticketAgent'@'localhost';
|
||||
DROP USER 'stationManager'@'localhost';
|
||||
DROP USER 'adminUser'@'localhost';
|
||||
|
||||
FLUSH PRIVILEGES;
|
||||
|
||||
CREATE USER 'ticketAgent'@'localhost' IDENTIFIED BY 'password123';
|
||||
CREATE USER 'stationManager'@'localhost' IDENTIFIED BY 'password123';
|
||||
CREATE USER 'adminUser'@'localhost' IDENTIFIED BY 'password123';
|
||||
|
||||
|
||||
GRANT SELECT, INSERT ON DBLab.Tickets TO 'ticketAgent'@'localhost';
|
||||
GRANT ALL PRIVILEGES ON DBLab.Stations TO 'stationManager'@'localhost';
|
||||
GRANT SELECT, INSERT, UPDATE, DELETE ON DBLab.* TO 'adminUser'@'localhost';
|
||||
|
||||
|
||||
REVOKE INSERT ON DBLab.Tickets FROM 'ticketAgent'@'localhost';
|
||||
|
||||
GRANT SELECT(Price) ON DBLab.Tickets TO 'ticketAgent'@'localhost';
|
||||
GRANT UPDATE(Name, City) ON DBLab.Stations TO 'stationManager'@'localhost';
|
||||
|
||||
CREATE ROLE 'ticketRole';
|
||||
CREATE ROLE 'stationRole';
|
||||
|
||||
|
||||
GRANT SELECT, INSERT ON DBLab.Tickets TO 'ticketRole';
|
||||
GRANT SELECT, UPDATE ON DBLab.Stations TO 'stationRole';
|
||||
|
||||
|
||||
GRANT 'ticketRole' TO 'ticketAgent'@'localhost';
|
||||
GRANT 'stationRole' TO 'stationManager'@'localhost';
|
||||
|
||||
REVOKE 'ticketRole' FROM 'ticketAgent'@'localhost';
|
||||
|
||||
FLUSH PRIVILEGES;
|
59
Assignments/Assignment4/src/view_test.sql
Normal file
59
Assignments/Assignment4/src/view_test.sql
Normal file
@ -0,0 +1,59 @@
|
||||
DROP VIEW
|
||||
IF
|
||||
EXISTS v_TrainRoutes;
|
||||
DROP VIEW
|
||||
IF
|
||||
EXISTS v_StayTimes;
|
||||
DROP VIEW
|
||||
IF
|
||||
EXISTS v_TrainStationCounts;
|
||||
CREATE VIEW v_TrainRoutes AS SELECT
|
||||
ID AS TrainID,
|
||||
StationID_start,
|
||||
StationID_arrive
|
||||
FROM
|
||||
Trains;
|
||||
CREATE VIEW v_StayTimes AS SELECT
|
||||
TrainID,
|
||||
StationID,
|
||||
arrive_time,
|
||||
leave_time,
|
||||
TIMEDIFF( leave_time, arrive_time ) AS StayDuration
|
||||
FROM
|
||||
Passbys;
|
||||
CREATE VIEW v_TrainStationCounts AS SELECT
|
||||
TrainID,
|
||||
COUNT( StationID ) AS StationCount
|
||||
FROM
|
||||
Passbys
|
||||
GROUP BY
|
||||
TrainID;
|
||||
SELECT
|
||||
*
|
||||
FROM
|
||||
v_StayTimes
|
||||
WHERE
|
||||
TrainID = 'G103';
|
||||
UPDATE v_StayTimes
|
||||
SET StationID = 3
|
||||
WHERE
|
||||
TrainID = 'G103'
|
||||
AND arrive_time = '2024-03-28 07:13:00';
|
||||
SELECT
|
||||
*
|
||||
FROM
|
||||
v_StayTimes
|
||||
WHERE
|
||||
TrainID = 'G103';
|
||||
DELETE
|
||||
FROM
|
||||
v_StayTimes
|
||||
WHERE
|
||||
TrainID = 'G103'
|
||||
AND arrive_time = '2024-03-28 07:13:00';
|
||||
SELECT
|
||||
*
|
||||
FROM
|
||||
v_StayTimes
|
||||
WHERE
|
||||
TrainID = 'G103';
|
Loading…
x
Reference in New Issue
Block a user