akevintg

SQLearning(LOGIN, GRANT, REVOKE, ETC)

May 29th, 2015
312
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 7.01 KB | None | 0 0
  1. /*
  2. CREATE DATABASE OOVEO_Salon
  3. GO
  4. USE OOVEO_Salon
  5. */
  6.  
  7. -- Create MsCustomer
  8. CREATE TABLE MsCustomer(
  9.     CustomerId CHAR(5) PRIMARY KEY,
  10.     CustomerName VARCHAR(50),
  11.     CustomerGender VARCHAR(10),
  12.     CustomerPhone VARCHAR(13),
  13.     CustomerAddress VARCHAR(100),
  14.     CONSTRAINT cekIDCust CHECK(CustomerId LIKE 'CU[0-9][0-9][0-9]')
  15. )
  16.  
  17. -- Create MsStaff
  18. CREATE TABLE MsStaff(
  19.     StaffId CHAR(5) PRIMARY KEY,
  20.     StaffName VARCHAR(50),
  21.     StaffGender VARCHAR(10),
  22.     StaffPhone VARCHAR(13),
  23.     StaffAddress VARCHAR(100),
  24.     StaffSalary NUMERIC(11,2),
  25.     StaffPosition VARCHAR(20),
  26.     CONSTRAINT cekIDStaff CHECK(StaffId LIKE 'SF[0-9][0-9][0-9]')
  27. )
  28.  
  29. -- Create MsTreatmentType
  30. CREATE TABLE MsTreatmentType(
  31.     TreatmentTypeId CHAR(5) PRIMARY KEY,
  32.     TreatmentTypeName VARCHAR(50),
  33.     CONSTRAINT cekIDTType CHECK(TreatmentTypeId LIKE 'TT[0-9][0-9][0-9]')
  34. )
  35.  
  36. -- Create MsTreatment
  37. CREATE TABLE MsTreatment(
  38.     TreatmentId CHAR(5) PRIMARY KEY,
  39.     TreatmentTypeId CHAR(5) REFERENCES MsTreatmentType ON UPDATE CASCADE ON DELETE CASCADE,
  40.     TreatmentName VARCHAR(50),
  41.     Price NUMERIC(11,2),
  42.     CONSTRAINT cekIDTreat CHECK(TreatmentId LIKE 'TM[0-9][0-9][0-9]')
  43. )
  44.  
  45. -- Create HeaderSalonServices
  46. CREATE TABLE HeaderSalonServices(
  47.     TransactionId CHAR(5) PRIMARY KEY,
  48.     CustomerId CHAR(5) REFERENCES MsCustomer ON UPDATE CASCADE ON DELETE CASCADE,
  49.     StaffId CHAR(5) REFERENCES MsStaff ON UPDATE CASCADE ON DELETE CASCADE,
  50.     TransactionDate DATE,
  51.     PaymentType VARCHAR(20),
  52.     CONSTRAINT cekIDTrans CHECK(TransactionId LIKE 'TR[0-9][0-9][0-9]')
  53. )
  54.  
  55. -- Create DetailSalonServices
  56. CREATE TABLE DetailSalonServices(
  57.     TransactionId CHAR(5) REFERENCES HeaderSalonServices ON UPDATE CASCADE ON DELETE CASCADE,
  58.     TreatmentId CHAR(5) REFERENCES MsTreatment ON UPDATE CASCADE ON DELETE CASCADE,
  59.     PRIMARY KEY(TransactionId, TreatmentId)
  60. )
  61.  
  62. -- Insert Data
  63. INSERT INTO MsCustomer VALUES
  64. ('CU001', 'Franky', 'Male', '08566543338', 'Daan mogot baru Street no 6'),
  65. ('CU002', 'Ernalia Dewi', 'Female', '085264782135', 'Tanjung Duren Street no 185'),
  66. ('CU003', 'Elysia Chen', 'Female', '085754206611', 'Kebon Jeruk Street no 120'),
  67. ('CU004', 'Brando Kartawijaya', 'Male', '081170225561', 'Greenvil Street no 88'),
  68. ('CU005', 'Andy Putra', 'Male', '087751321421', 'Sunter Street no 42')
  69.  
  70. INSERT INTO MsStaff VALUES
  71. ('SF001', 'Dian Felita Tanoto', 'Female', '085265442222', 'Palmerah Street no 56', 15000000, 'Top Stylist'),
  72. ('SF002', 'Mellisa Pratiwi', 'Female', '085755552011', 'Kebon Jeruk Street no 151', 10000000, 'Top Stylist'),
  73. ('SF003', 'Livia Ashianti', 'Female', '085218542222', 'Kebon Jeruk Street no 19', 7000000, 'Stylist'),
  74. ('SF004', 'Indra Saswita', 'Male', '085564223311', 'Sunter Street no 91', 7000000, 'Stylist'),
  75. ('SF005', 'Ryan Nixon Salim', 'Male', '085710255522', 'Kebon Jeruk Street no 123', 3000000, 'Stylist')
  76.  
  77. INSERT INTO MsTreatmentType VALUES
  78. ('TT001', 'Hair Treatment'),
  79. ('TT002', 'Message / Spa'),
  80. ('TT003', 'Beauty Care'),
  81. ('TT004', 'Nail Treatment'),
  82. ('TT005', 'Body Treatment')
  83.  
  84. INSERT INTO MsTreatment VALUES
  85. ('TM001', 'TT001','Cutting by Stylist', 150000),
  86. ('TM002', 'TT001','Cutting by Top Stylist', 450000),
  87. ('TM003', 'TT001','Cutting Pony', 50000),
  88. ('TM004', 'TT001','Blow', 90000),
  89. ('TM005', 'TT001','Coloring', 480000),
  90. ('TM006', 'TT001','Highlight', 320000),
  91. ('TM007', 'TT001','Japanese Perm', 700000),
  92. ('TM008', 'TT001','Digital Perm', 1100000),
  93. ('TM009', 'TT001','Special Perm', 1100000),
  94. ('TM010', 'TT001','Rebonding Treatment', 1100000),
  95. ('TM011', 'TT002','Creambath', 150000),
  96. ('TM012', 'TT002','Hair Spa', 250000),
  97. ('TM013', 'TT002','Hair Mask', 250000),
  98. ('TM014', 'TT002','Hand Spa Reflexy', 200000),
  99. ('TM015', 'TT002','Reflexy', 250000),
  100. ('TM016', 'TT002','Back Theraphy Massage', 300000),
  101. ('TM017', 'TT003','Make Up', 500000),
  102. ('TM018', 'TT003','Make Up Wedding', 5000000),
  103. ('TM019', 'TT003','Facial', 300000),
  104. ('TM020', 'TT004','Manicure', 80000),
  105. ('TM021', 'TT004','Pedicure', 100000),
  106. ('TM022', 'TT004','Nail Extension', 250000),
  107. ('TM023', 'TT004','Nail Acrylic Infill', 340000),
  108. ('TM024', 'TT005','Japanese Treatment', 350000),
  109. ('TM025', 'TT005','Scalp Treatment', 250000),
  110. ('TM026', 'TT005','Crystal Treatment', 400000)
  111.  
  112. INSERT INTO HeaderSalonServices VALUES
  113. ('TR001', 'CU001', 'SF004', '2012/12/20', 'Credit'),
  114. ('TR002', 'CU002', 'SF005', '2012/12/20', 'Credit'),
  115. ('TR003', 'CU003', 'SF003', '2012/12/20', 'Cash'),
  116. ('TR004', 'CU004', 'SF005', '2012/12/20', 'Debit'),
  117. ('TR005', 'CU005', 'SF003', '2012/12/21', 'Debit'),
  118. ('TR006', 'CU001', 'SF005', '2012/12/21', 'Credit'),
  119. ('TR007', 'CU002', 'SF001', '2012/12/22', 'Cash'),
  120. ('TR008', 'CU003', 'SF002', '2012/12/22', 'Credit'),
  121. ('TR009', 'CU005', 'SF004', '2012/12/22', 'Debit')
  122.  
  123. INSERT INTO DetailSalonServices VALUES
  124. ('TR001', 'TM001'),
  125. ('TR001', 'TM005'),
  126. ('TR002', 'TM010'),
  127. ('TR002', 'TM015'),
  128. ('TR003', 'TM025'),
  129. ('TR003', 'TM009'),
  130. ('TR004', 'TM001'),
  131. ('TR004', 'TM006'),
  132. ('TR004', 'TM015'),
  133. ('TR004', 'TM016'),
  134. ('TR005', 'TM016'),
  135. ('TR006', 'TM006'),
  136. ('TR006', 'TM015'),
  137. ('TR007', 'TM002'),
  138. ('TR007', 'TM005'),
  139. ('TR008', 'TM002'),
  140. ('TR008', 'TM006'),
  141. ('TR009', 'TM005'),
  142. ('TR009', 'TM006')
  143.  
  144. -- Display Data
  145. SELECT * FROM MsCustomer
  146. SELECT * FROM MsStaff
  147. SELECT * FROM MsTreatment
  148. SELECT * FROM MsTreatmentType
  149. SELECT * FROM HeaderSalonServices
  150. SELECT * FROM DetailSalonServices
  151.  
  152. /*
  153. sp_msforeachtable'DROP TABLE ?'
  154. sp_msforeachtable'SELECT * FROM ?'
  155.  
  156. DROP TABLE DetailSalonServices
  157. DROP TABLE HeaderSalonServices
  158. DROP TABLE MsTreatment
  159. DROP TABLE MsTreatmentType
  160. DROP TABLE MsCustomer
  161. DROP TABLE MsStaff
  162.  
  163. DELETE FROM DetailSalonServices
  164. DELETE FROM HeaderSalonServices
  165. DELETE FROM MsTreatment
  166. DELETE FROM MsTreatmentType
  167. DELETE FROM MsCustomer
  168. DELETE FROM MsStaff
  169. */
  170.  
  171.  
  172. /*1.    Create a login named ‘ManagerUser’ that has
  173. password ‘manager’.(create login)*/
  174.  
  175. CREATE LOGIN ManageUser WITH PASSWORD='Manager'
  176.  
  177. /*2.    Create a database user named ‘Manager’ for
  178. login ‘ManagerUser’.(create user)*/
  179.  
  180. CREATE USER Manager FOR LOGIN ManageUser
  181.  
  182. /*3.    Create a login named ‘EmployeeUser’ that has
  183. password ‘employee’(create login)*/
  184.  
  185. CREATE LOGIN EmployeeUser WITH PASSWORD='employee'
  186.  
  187. /*4.    Create a database user named ‘Employee’ for
  188. login ‘EmployeeUser’.(create user)*/
  189.  
  190. CREATE USER Employee FOR LOGIN EmployeeUser
  191.  
  192. /*5.    Give all permission (select, insert, update,
  193. delete, etc) to public towards MsTreatment table.
  194. (grant all)*/
  195.  
  196. GRANT ALL ON MsTreatment TO PUBLIC
  197.  
  198. /*6.    Give the permissions to ‘Manager’ to do insert,
  199. update, and delete towards MsStaff table and ‘Manager’
  200. can also give the permission on MsStaff table to the
  201. other users.(grant)*/
  202.  
  203. GRANT INSERT,UPDATE,DELETE ON MsStaff TO Manager WITH GRANT OPTION
  204.  
  205. /*7.    Give the permission to ‘Manager’ to do select
  206. towards MsTreatment table.(grant)*/
  207.  
  208. GRANT SELECT ON MsTreatment TO Manager
  209.  
  210. /*8.    Delete all permissions on MsTreatment table
  211. from public.(revoke)*/
  212.  
  213. REVOKE ALL ON MsTreatment FROM PUBLIC
  214.  
  215. /*9.    Delete the permission to select on MsTreatment
  216. table from ’Manager’.(revoke)*/
  217.  
  218. REVOKE SELECT ON MsTreatment FROM Manager
Add Comment
Please, Sign In to add comment