初步完成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