Advertisement
Guest User

Untitled

a guest
Mar 23rd, 2019
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 4.56 KB | None | 0 0
  1. -- zakladanie uzytkownika
  2. -- login dla servera
  3. CREATE login st WITH password = 'haslo123'
  4. -- user jest dla bazy danych
  5. CREATE USER st FOR login st;
  6.  
  7.  
  8. --1. Sprawdzić swoje uprawnienia na serwerze SQL.
  9. SELECT * FROM sys.fn_my_permissions(DEFAULT, 'SERVER')
  10. --2. Sprawdzić swoje uprawnienia w bazie danych SQL.
  11. SELECT * FROM sys.fn_my_permissions(DEFAULT, 'DATABASE')
  12. --3. Utworzyć tabelę o nazwie Dane, zawierająca cztery kolumny:
  13. --- identyfikator, liczba, autoinkrementacja, klucz główny
  14. --- nazwa, tekst, 20 znaków
  15. --- cena, waluta
  16. --- data, data
  17. CREATE TABLE Dane
  18. ( id NUMERIC(5) IDENTITY(1,1) PRIMARY KEY,
  19.   nazwa VARCHAR(20),
  20.   cena money,
  21.   DATA DATE)
  22. --4. Wykorzystując autoinkrementację dodać do tablicy Dane trzy wiersze:
  23. --Laptop; 1499,99 zł
  24. --Klawiatura; 180,00 zł
  25. --Mysz; 40 zł
  26. INSERT INTO Dane VALUES
  27. ('Laptop', 1499.99, getdate()),
  28. ('Klawiatura', 188.00, getdate()),
  29. ('Mysz', 40, getdate())
  30. --5. Zmienić uprawnienia na tabeli usuwając innemu użytkownikowi możliwość przeglądania zawartości tabeli.
  31. SELECT * FROM Dane
  32. deny SELECT ON Dane TO st
  33. deny SELECT ON Dane TO student -- nie zadziala bo sysadmin nie moze sysadminowi odebrac uprawnien
  34. --6. Sprawdzić swoje uprawnienia na obiekcie innego użytkownika.
  35. SELECT * FROM sys.fn_my_permissions(DEFAULT, 'DATABASE')
  36. EXEC sp_helprotect
  37. --7. Cofnąć przyznane zablokowane wcześniej uprawnienie do obiektu. Sprawdzić działanie.
  38. REVOKE SELECT ON Dane TO st
  39. --8. Zablokować uprawnienia aktualizacji, dodawania wierszy oraz zmian w tablicy Dane dla innego użytkownika.
  40. deny UPDATE, INSERT, ALTER ON Dane TO st
  41. --9. Nadać możliwość dodawania wierszy w tablicy Dane dla innych użytkowników. Sprawdzić działanie i efektywne uprawnienia do niej.
  42. GRANT INSERT ON Dane TO st
  43. --10. Spróbować zablokować wszystkie uprawnienia na obiekcie Dane dla innego użytkownika.
  44. deny ALL ON Dane TO st
  45. --11. Utworzyć typ tablicowy o nazwie T_Czas, który będzie przechowywał liczby i odpowiadające im wartoœści miesięcy.
  46. CREATE TYPE t_czas AS TABLE (id INT, nazwa VARCHAR(30))
  47.  
  48.  
  49.  
  50. --------- LAB 2 --------------------------
  51.  
  52.  
  53.  
  54.  
  55. --1. Utworzyć rolę o nazwie Rola_Towar i przypisać jej pełne uprawnienia do tabeli Towar.
  56. CREATE ROLE rola_towar;
  57. GRANT INSERT, UPDATE, DELETE, SELECT ON Dane TO rola_towar;
  58. sp_helprolemember @rolename='rola_towar'
  59. --2. Do roli Rola_Towar przypisać uprawnienia wykonywania procedury o nazwie WyswietlTowary.
  60. CREATE PROCEDURE WyswietlTowary
  61. AS
  62. BEGIN
  63.     SELECT * FROM dane
  64. END
  65. GO
  66. --3. Przypisać rolę Rola_Towar własnemu użytkownikowi. Sprawdzić użytkowników przypisanych do roli.
  67. EXECUTE WyswietlTowary
  68. GRANT EXECUTE ON WyswietlTowary TO rola_towar
  69. sp_addrolemember @rolename='rola_towar', @membername='st'
  70. GO
  71. GRANT SELECT ON Dane TO st
  72.  
  73. -- sprawdzenie
  74. GO
  75. sp_helprotect NULL, 'st'
  76. GO
  77. sp_helprotect NULL, 'rola_towar'
  78. GO
  79. sp_helprolemember @rolename='rola_towar'
  80. GO
  81. sp_helprole
  82. GO
  83. sp_helplogins
  84. GO
  85.  
  86. --4. Utworzyć użytkownika o nazwie Uzytkownik1 i umożliwić mu modyfikację tabel.
  87. CREATE login Uzytkownik1 WITH password='haslo123'
  88. GO
  89. CREATE USER Uzytkownik1 FOR login Uzytkownik1
  90. GO
  91. GRANT ALTER ON Dane TO Uzytkownik1
  92. GO
  93. --5. Przypisać użytkownikowi utworzonemu w poprzednim punkcie rolę dostępu do danych.
  94. EXEC sp_addrolemember @membername='Uzytkownik1', @rolename='db_datareader'
  95. GO
  96. --6. Sprawdzić wszystkich użytkowników roli dostępu do danych oraz użytkowników roli sysadmin.
  97. EXEC sp_helprolemember @rolename='db_datareader'
  98. GO
  99. EXEC sp_helprolemember @rolename='db_owner'
  100. GO
  101. EXEC sp_helpsrvrolemember @srvrolename='sysadmin'
  102. GO
  103. --7. Sprawdzić wszystkie uprawnienia do serwera dla utworzonego wcześniej użytkownika.
  104. EXECUTE AS login='uzytkownik1'
  105. GO
  106. SELECT * FROM sys.fn_my_permissions(DEFAULT, 'SERVER')
  107. GO
  108. --8. Założyć nową bazę danych o nazwie Studenci z plikiem na dysku c w folderze bazy, rozmiar bazy 4MB (przeczytać komunikat błędu), maksymalnie 12MB z przyrostem co 2MB.
  109.  
  110. --9. Przypisać uprawnienia pełnego dostępu do bazy danych dla utworzonego wcześniej użytkownika.
  111.  
  112. --10. Zlokalizować pliki bazy danych i przygotować kopię zapasową systemu.
  113.  
  114. --11. Usunąć utworzoną wcześniej rolę i użytkownika.
  115.  
  116. --12. Usunąć utworzoną wcześniej bazę danych.
  117.  
  118. --13. Utworzyć procedurę o nazwie WyswietlTowary, która przy pomocy typu tablicowego T_Czas bêdzie wyœwietlać poszczególne nazwy  towarów i słownie miesięcy, w których zostały dodane (dane z laboratorium nr 1).
  119.  
  120. --14. Zablokować uprawnienia wykonania procedury dla innych użytkowników i przetestować działanie.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement