background image

 

DDL zadania do wykonania 

Cz. I 

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  referencyjnych,  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 

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ż> 

21.

  Usunąć wszystkie obiekty stworzone przez użytkownika prac.