background image

 

DDL zadania do wykonania 

Cz. I 

UWAGA: 

Przed przystąpieniem do realizacji tej części zadań proszę sprawdzić czy na serwerze bazy 

danych  znajduje  się  baza  labbd,  jeśli  nie  należy  ją  załadować  (plik  mdf  znajduje  się  na 

Platformie) korzystając z opcji Attach

 

1.  Utworzyć bazę danych Test1 

Polecenie: CREATE DATABASE <nazwa_bazy_danych> 

WSZYSTKIE POZOSTAŁE OPERACJE Z CZ. I WYKONUJEMY NA BAZIE TEST1  

2.  Stworzyć w niej nowe tabele zesp1 oraz prac1 tak, by spełnione były następujące warunki: 

zesp1:  

kolumny: Nazwazesp char(30), Nrz smallint, Nrpkz int 

  

Nrz jest kluczem głównym   

prac1:  

kolumny: Nrp int, Kobieta char (1),Data_ur datetime NOT NULL,Nazwisko char (15) NOT NULL, Nrz smallint 

  

Nrp jest kluczem głównym 

  

Na kolumnie Nrz jest zbudowany indeks 

Polecenia: 

CREATE TABLE <nazwa_tabeli>(<nazwa_kolumny> <typ_kolumny> [PRIMARY KEY],…) 

CREATE INDEX <nazwa_indeksu> ON <nazwa_tabeli> (<nazwa_kolumny>) 

3.  Wstawić do stworzonych tabel dane z tabel ZESPOLY oraz PRACOWNICY z bazy LABBD 

Zwrócić uwagę na to, czy nazwy kolumn/typy nie są różne 

Polecenie: INSERT INTO <nazwa_tabeli> SELECT *|<lista_kolumn> FROM labbd.dbo.<nazwa_tabeli> 

4.  Do  tabeli  prac1  dodać  klucz  obcy  odwołujący  się  do  tabeli  zesp1  tak,  aby  usunięcie  zespołu 

powodowało  wpisanie  wartości  NULL  w  polu  Nrz  tabeli  prac1.  Do  tabeli  zesp1  dodać  klucz  obcy 

odwołujący się do tabeli prac1 tak, aby nie można było usunąć pracownika, który jest kierownikiem 

zespołu 

Polecenie: 

ALTER  TABLE  <nazwa_tabeli>  ADD  CONSTRAINT  <nazwa_klucza>  FOREIGN  KEY  (<kolumna>)  REFERENCES 

<nazwa_tabeli>(<kolumna>) ON DELETE NO ACTION|SET NULL 

5.  Wykonać ćwiczenie sprawdzające poprawność działania więzów spójności, pod kątem wprowadzania 

wartości  pustych,  powtarzających  się  wartości  oraz  kasowania  wierszy  mających  swych 

odpowiedników w tabelach podrzędnych oraz dokonywania zmian wartości. 

 

background image

 

Cz. II 

UWAGA: 

 

Przed przystąpieniem do realizacji tej części zadań proszę sprawdzić czy ustawienie 

opcji  Server  authentication  (zakładka  Security  we  właściwościach  serwera  bazy 

danych)  pozwala  na  wykorzystanie  autoryzacji  poprzez  SQL  Server.  W  razie 

konieczności zmienić to ustawienie, a następnie z zrestartować serwer bazy danych 

1.  Stworzyć użytkownika admin z hasłem admin123 – wykorzystując polecenie CREATE LOGIN. 

Polecenie:  

CREATE LOGIN <nazwa_loginu> WITH PASSWORD = ‘<hasło>’ 

UWAGA: Login tworzy się na serwerze – główna gałąź Security →Logins 

2.  W  bazie  danych  Test1  jako  użytkownik  admin  wykonać  polecenie  SELECT  na  tabeli  zesp1,  co  się 

stanie? 

3.  Podłączyć  się  do  bazy  jako  użytkownik  administrator.  Wykorzystać  polecenie  CREATE  USER  do 

przydzielenia uprawnień użytkownikowi admin do bazy danych Test1. 

Polecenie: 

USE  test1  -  lub  przełączyć  się  ręcznie  na  bazę  test1  (

użytkownik  ma  być  utworzony  w  tej  właśnie  bazie!!! 

gałąź 

Databases →test1 → Security →Users)  

CREATE USER <nazwa_użytkownika> FROM LOGIN <nazwa_loginu>   

4.  Ponownie w bazie danych Test1 jako użytkownik admin wykonać polecenie SELECT na tabeli zesp1, 

co się stanie? 

5.  Jako  użytkownik  administrator,  za  pomocą  polecenie  GRANT  nadać  użytkownikowi  admin 

odpowiednie uprawnienia do odczytu tabeli zesp1. 

Polecenie: GRANT SELECT ON <nazwa_tabeli> TO <nazwa_użytkownika> 

6.  Ponownie jako admin i wykonać polecenie SELECT na tabeli zesp1, co się stanie tym razem? 

7.  Jako admin stworzyć użytkownika prac, z hasłem prac123, co się stanie? 

8.  Jako użytkownik systemowy administrator dołączyć użytkownika admin do roli sysadmin. 

Polecenie: sp_addsrvrolemember  <nazwa_loginu> , <nazwa_roli> 

9.  Jeszcze raz admin wykonać próbę stworzenia użytkownika prac, z hasłem prac, co się stanie? 

Polecenia: 

CREATE LOGIN … 

CREATE USER … 

10. Stworzyć użytkownika stud, z hasłem stud. 

CREATE LOGIN … 

CREATE USER … 

background image

 

11.  Podłączyć  się  do  bazy  jako  użytkownik  admin,  nadać  użytkownikowi  prac  uprawnienie  do 

przeglądania tabeli zesp1 

GRANT SELECT … 

12.  Podłączyć się do bazy jako użytkownik prac i utworzyć tabelę Tem1 o kolumnach (nazwatemat char 

(30), data_odb datetime, nrt integer not null, nrpkt smallint not null) 

13.  Jako użytkownik admin nadać użytkownikowi prac poleceniem GRANT prawa do tworzenia tabel 

Polecenia: 

GRANT CREATE TABLE TO <nazwa_uż> 

GRANT ALTER ON SCHEMA::dbo TO <nazwa_uż> 

14. Jako użytkownik prac wykonać jeszcze raz polecenie tworzenia tabeli 

15.  Jako  użytkownik  admin  zezwolić  użytkownikowi  prac  na  usuwanie  rekordów  z  tabeli  zesp1. 

Sprawdzić działanie przydzielonych uprawnień. 

Polecenie: GRANT DELETE ON <nazwa_tabeli> TO <nazwa_użytkownika> 

16.  Jako użytkownik admin w bazie danych Test1 utworzyć rolę o nazwie not_delete i zabronić tej roli na 

usuwanie rekordów z tabeli zesp1. 

Polecenia: 

CREATE ROLE <nazwa_roli> 

DENY DELETE ON <nazwa_tabeli> TO <nazwa_roli> 

17.  Do roli not_delete dołączyć użytkownika prac. Sprawdzić, czy użytkownik prac może usuwać rekordy 

z tabeli zesp1. 

Polecenie: sp_addrolemember <nazwa_roli>, <nazwa_uż> 

18.  Jako użytkownik admin zmienić hasło użytkownikowi stud na student. 

Polecenie: ALTER LOGIN <nazwa_uż> WITH password = '<nowe_hasło>' 

19.  Usunąć użytkownika stud, co się stanie? 

Polecenie: DROP USER <nazwa_uż> 

20.  Usunąć użytkownika prac, co się stanie i dlaczego? 

Polecenie: DROP USER <nazwa_uż>