-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathUserMangment Ex1.sql
More file actions
120 lines (92 loc) · 2.93 KB
/
Copy pathUserMangment Ex1.sql
File metadata and controls
120 lines (92 loc) · 2.93 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
-- Login as root user
-- (i) Create user
CREATE USER 'staff01'@'localhost' IDENTIFIED BY '123';
-- (ii) Check user created
SELECT User, Host FROM mysql.user WHERE User = 'staff01';
-- (iii) Login as staff01 (manually via terminal or client)
-- Try creating database (will fail if no privileges)
-- CREATE DATABASE petsDB; -- Permission denied expected
-- (iv) Back as root: Show Grants
SHOW GRANTS FOR 'staff01'@'localhost';
-- (v) View all users
SELECT * FROM mysql.user;
-- ------------------------------
-- A. CREATE Privilege
-- ------------------------------
-- (i) Create PetsDB
CREATE DATABASE PetsDB;
-- (ii) Check DB
SHOW DATABASES;
-- (iii) Use DB
USE PetsDB;
-- (iv) Grant Create privilege
GRANT CREATE ON PetsDB.* TO 'staff01'@'localhost';
-- (v) Show Grants
SHOW GRANTS FOR 'staff01'@'localhost';
-- (vi) Login as staff01
-- (vii) SHOW DATABASES;
-- (viii) USE PetsDB;
-- (ix) Create Owner table
-- (x) SHOW TABLES;
-- DESC Owner;
-- ------------------------------
-- B. SELECT Privilege
-- ------------------------------
GRANT SELECT ON PetsDB.* TO 'staff01'@'localhost';
FLUSH PRIVILEGES;
-- As staff01:
-- DESC Owner;
-- SELECT * FROM Owner;
-- INSERT INTO Owner VALUES (2323, 'John', 'Jaffna'); -- Will fail
-- ------------------------------
-- C. INSERT Privilege
-- ------------------------------
GRANT INSERT ON PetsDB.* TO 'staff01'@'localhost';
FLUSH PRIVILEGES;
-- As staff01:
INSERT INTO Owner VALUES (2323, 'John', 'Jaffna');
SELECT * FROM Owner;
-- Try update (will fail)
-- UPDATE Owner SET Town = 'Omanthai' WHERE OwnerId = 2323;
-- ------------------------------
-- D. UPDATE Privilege
-- ------------------------------
GRANT UPDATE ON PetsDB.* TO 'staff01'@'localhost';
FLUSH PRIVILEGES;
-- As staff01:
UPDATE Owner SET Town = 'Omanthai' WHERE OwnerId = 2323;
SELECT * FROM Owner;
-- Try delete (will fail)
-- DELETE FROM Owner WHERE OwnerId = 2312;
-- ------------------------------
-- E. DELETE Privilege
-- ------------------------------
GRANT DELETE ON PetsDB.* TO 'staff01'@'localhost';
FLUSH PRIVILEGES;
-- As staff01:
DELETE FROM Owner WHERE OwnerId = 2312;
SELECT * FROM Owner;
-- ------------------------------
-- Ex02: Create and Manipulate Pets Table
-- ------------------------------
-- As staff01 in PetsDB
CREATE TABLE Pets (
PetId INT PRIMARY KEY,
PetName VARCHAR(100),
OwnerId INT
);
INSERT INTO Pets VALUES (111, 'Rocky', 2323),
(112, 'Tiger', 2323),
(113, 'Jimmy', 2323);
UPDATE Pets SET PetName = 'Browny' WHERE PetId = 113;
DELETE FROM Pets WHERE PetId = 112;
-- Try dropping DB (will fail without DROP privilege)
-- DROP DATABASE PetsDB;
-- ------------------------------
-- F. DROP Privilege
-- ------------------------------
GRANT DROP ON PetsDB.* TO 'staff01'@'localhost';
FLUSH PRIVILEGES;
-- As staff01:
DROP DATABASE PetsDB;
SHOW DATABASES;