1
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.
2
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 …
3
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.