ITA-101 Bazy Danych. Włodzimierz Dąbrowski, Przemysław Kowalczuk, Konrad Markowski. Moduł 5. Wersja 1.0

Podobne dokumenty
CREATE USER

PLAN WYKŁADU BAZY DANYCH PODSTAWOWE KWESTIE BEZPIECZEŃSTWA OGRANICZENIA DOSTĘPU DO DANYCH

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1

Projektowanie systemów baz danych

Administracja i programowanie pod Microsoft SQL Server 2000

Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik

Użytkownicy, uprawnienia, role w SQL Server (W oparciu o SQL Server 2008R2 Books Online)

Literatura: SQL Ćwiczenia praktyczne Autor: Marcin Lis Wydawnictwo: Helion. Autor: Joanna Karwowska

Prawa dostępu do serwera. Nadawanie i odbieranie uprawnień DCL. Użytkownicy a role

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota

Procedury składowane i wyzwalacze

Systemowe aspekty baz

Wyzwalacz - procedura wyzwalana, składowana fizycznie w bazie, uruchamiana automatycznie po nastąpieniu określonego w definicji zdarzenia

INFORMATOR TECHNICZNY WONDERWARE. Ograniczenie wyświetlania listy zmiennych w przeglądarce zmiennych ActiveFactory

Problemy techniczne SQL Server. Zarządzanie bazami danych na serwerze SQL

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Programowanie w SQL procedury i funkcje. UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika

MS Windows Vista. Spis treści. Autor: Jacek Parzonka, InsERT

D D L S Q L. Co to jest DDL SQL i jakie s jego ą podstawowe polecenia?

T-SQL dla każdego / Alison Balter. Gliwice, cop Spis treści. O autorce 11. Dedykacja 12. Podziękowania 12. Wstęp 15

Program szkoleniowy Efektywni50+ Moduł IV Podstawy relacyjnych baz danych i język SQL

Wykład 8. SQL praca z tabelami 5

DECLARE VARIABLE zmienna1 typ danych; BEGIN

Wprowadzenie do projektowania i wykorzystania baz danych Relacje

Problemy techniczne SQL Server

Kadry Optivum, Płace Optivum. Jak przenieść dane na nowy komputer?

Wykład :45 BD-1 W_3

Problemy techniczne SQL Server

Inżynieria Programowania Laboratorium 3 Projektowanie i implementacja bazy danych. Paweł Paduch paduch@tu.kielce.pl

P o d s t a w y j ę z y k a S Q L

Problemy techniczne SQL Server. Zarządzanie bazami danych na serwerze SQL

Rozdział 5. Administracja kontami użytkowników

Uruchamianie bazy PostgreSQL

CREATE DATABASE ksiegarnia_internetowa DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

Wyzwalacze. do automatycznego generowania wartości kluczy głównych. Składnia instrukcji tworzacej wyzwalacz

Programowanie obiektowe

Ref. 7 - Język SQL - polecenia DDL i DML

Tworzenie tabel. Bazy danych - laboratorium, Hanna Kleban 1

I. Język manipulowania danymi - DML (Data Manipulation Language). Polecenia INSERT, UPDATE, DELETE

STWORZENIE BIBLIOTEKI SŁUŻĄCEJ DO WCZYTYWANIA

Ogólny plan przedmiotu. Strony WWW. Literatura BAZY DANYCH. Materiały do wykładu:

Kostki OLAP i język MDX

Oracle11g: Wprowadzenie do SQL

Administracja i programowanie pod Microsoft SQL Server 2000

SQL DDL DML TECHNOLOGIE BAZ DANYCH. Wykład 5: Język DDL i DML. Małgorzata Krętowska

UPDATE Studenci SET Rok = Rok + 1 WHERE Rodzaj_studiow =' INŻ_ST'; UPDATE Studenci SET Rok = Rok 1 WHERE Nr_albumu IN ( '111345','100678');

Administracja i programowanie pod Microsoft SQL Server 2000

Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski.

Kadry Optivum, Płace Optivum. Jak przenieść dane na nowy komputer?

Bazy danych. Bazy danych. Zapytania SELECT. Dr inż. Paweł Kasprowski.

Instytut Mechaniki i Inżynierii Obliczeniowej fb.com/groups/bazydanychmt/

Programowanie zaawansowane w T-SQL

Systemowe aspekty baz danych

Oracle PL/SQL. Paweł Rajba.

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny technologiczny Politechnika Śląska

Przestrzenne bazy danych Podstawy języka SQL

Instytut Mechaniki i Inżynierii Obliczeniowej fb.com/groups/bazydanychmt/

Plan. Wprowadzenie. Co to jest APEX? Wprowadzenie. Administracja obszarem roboczym

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Paweł Rajba

Z pojedynczym obiekcie zasady grupy znajdziemy dwa główne typy ustawień:

BACKUP BAZ DANYCH MS SQL

Microsoft SQL Server Podstawy T-SQL

Bazy danych 10. SQL Widoki

BAZY DANYCH wprowadzenie do języka SQL. Opracował: dr inż. Piotr Suchomski

BAZY DANYCH LABORATORIUM. Studia niestacjonarne I stopnia

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego.

Laboratorium nr 4. Temat: SQL część II. Polecenia DML

Założenia do ćwiczeń: SQL Server UWM Express Edition: \SQLEXPRESS. Zapoznaj się ze sposobami użycia narzędzia T SQL z wiersza poleceń.

Składowane procedury i funkcje

Wykład 4. SQL praca z tabelami 1

strukturalny język zapytań używany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych

ITA-101 Bazy Danych. Włodzimierz Dąbrowski, Przemysław Kowalczuk, Konrad Markowski. Moduł 6. Wersja 1.0. Język SQL DML

Cele. Definiowanie wyzwalaczy

Płace Optivum. 1. Zainstalować serwer SQL (Microsoft SQL Server 2008 R2) oraz program Płace Optivum.

Systemy baz danych Prowadzący: Adam Czyszczoń. Systemy baz danych. 1. Import bazy z MS Access do MS SQL Server 2012:

Sage Migrator 2019.e Migracja do Sage 50c wersja 2019.a i 2019.b

5. Administracja kontami uŝytkowników

Instrukcja instalacji i obsługi programu Szpieg 3

Jak przenieść bazę danych na zdalny serwer?

Konfiguracja oprogramowania w systemach MS Windows dla kont z ograniczonymi uprawnieniami

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny technologiczny Politechnika Śląska

koledzy, Jan, Nowak, ul. Niecała 8/23, , Wrocław, , ,

Oracle PL/SQL. Paweł Rajba.

Konfiguracja oprogramowania w systemach MS Windows dla kont z ograniczonymi uprawnieniami

Autor: Joanna Karwowska

SQL Server i T-SQL w mgnieniu oka : opanuj język zapytań w 10 minut dziennie / Ben Forta. Gliwice, Spis treści

Po instalacji serwera MYSQL dostępne jest konto o nazwie root. Domyślnie nie ma ono przypisanego hasła, aczkolwiek podczas procesu konfiguracji jest

Wdrożenie modułu płatności eservice. dla systemu oscommerce 2.3.x

asix Autoryzacja dostępu do zasobów WWW systemu asix (na przykładzie systemu operacyjnego Windows 2008)

Procedury techniczne modułu Forte Kontroling. Pakiety DTS

Wstęp. Opis ten dotyczy wydziałów orzeczniczych.

SQL Server Configuration Manager centrum dowodzenia

ZAPOZNANIE SIĘ ZE SPOSOBEM PRZECHOWYWANIA

Uprawnienia, role, synonimy

Transkrypt:

Włodzimierz Dąbrowski, Przemysław Kowalczuk, Konrad Markowski Moduł 5 Wersja 1.0 Spis treści Język SQL DCL, DDL Język SQL DCL, DDL... 1 Informacje o module... 2 Przygotowanie teoretyczne... 3 Przykładowy problem... 3 Podstawy teoretyczne... 3 Przykładowe rozwiązanie... 7 Porady praktyczne... 11 Uwagi dla studenta... 12 Dodatkowe źródła informacji... 12 Laboratorium podstawowe... 14 Problem 1 (czas realizacji 15 min)... 14 Problem 2 (czas realizacji 30 min)... 15 Laboratorium rozszerzone... 20 Zadanie 1 (czas realizacji 90 min)... 20

Informacje o module Opis modułu Język SQL został opracowany w 1987 roku z myślą o relacyjnych bazach danych. Składa się on z trzech składowych: języka definiowania danych (DDL), języka sterowania danymi (DCL) oraz języka operowania na danych (DML). W module tym znajdziesz podstawowe instrukcje języka definiowania danych języka SQL DDL (z ang. Data Definition Language) oraz języka sterowania danymi języka SQL DCL (z ang. Data Control Language). Cel modułu Celem modułu jest zaprezentowanie podstaw języka SQL DCL i DDL. W module tym pokazano składnię częściową instrukcji oraz przykładowe ich użycie. Uzyskane kompetencje Po zrealizowaniu modułu będziesz: potrafił użyć podstawowych instrukcji języka T-SQL DDC potrafił użyć podstawowych instrukcji języka T-SQL DDL rozumiał mechanizm zarządzania uprawnieniami dostępu do obiektów bazy danych rozumiał mechanizm manipulowania bazą danych i jej obiektami Wymagania wstępne Przed przystąpieniem do pracy z tym modułem powinieneś: wiedzieć w jaki sposób stworzyć bazę danych wraz z jej podstawowymi obiektami wiedzieć, w jaki sposób poruszać się po Microsoft SQL Server Menagement Studio wiedzieć, w jaki sposób należy zakładać użytkowników i przypisywać ich do bazy danych Mapa zależności modułu Zgodnie z mapą zależności przedstawioną na rys. 1, przed przystąpieniem do realizacji tego modułu należy zapoznać się z materiałem zawartym w module 3. Rys. 1 Mapa zależności modułu Strona 2/20

Przygotowanie teoretyczne Przykładowy problem Jak zapewne wiesz, z bazy danych może korzystać wielu użytkowników, którzy mogą dysponować różnymi prawami dostępu do różnych obiektów w bazie danych. Najgorszym rozwiązaniem jakie może istnieć to pełne zaufanie do osób korzystających z bazy i przydzielenie im pełnych praw. Ze względu na bezpieczeństwo danych zawartych w bazie, warto stosować zasadę ograniczonego zaufania do użytkownika. Z tego powodu należy zastanowić się, jakie uprawnienia należy przydzielić poszczególnym użytkownikom lub grupom użytkowników. Dobrze jest wiedzieć, w jaki sposób można nadawać, odmawiać i cofać prawa dostępu. W kolejnym kroku należy rozważyć, czy użytkownik powinien mieć dostęp do całego obiektu typu tabela lub widok, czy może wystarczy mu dostęp do poszczególnych kolumn. Ze względu na bezpieczeństwo, administrator powinien zastanowić się, czy lepszym rozwiązaniem nie byłoby umożliwienie użytkownikowi lub grupie użytkowników dostępu do obiektów programowalnych typu procedury składowane, które wprowadzają kolejny stopień bezpieczeństwa i maskują fizyczną strukturę bazy danych. Podstawy teoretyczne W części tej poznasz podstawy języka T-SQL DCL (ang. Data Control Language) i T-SQL DDL (ang. Data Definition Language). Dowiesz się, w jaki sposób nadawać, odmawiać i usuwać prawa do wykonywania operacji na poszczególnych obiektach baz danych, takich jak tabele i widoki, oraz w jaki sposób zarządzać dostępem do programowalnych obiektów. Nauczysz się tworzyć, modyfikować i usuwać podstawowe obiekty. Polecenia DCL Instrukcje języka DCL służą do zarządzania uprawnieniami dostępu do obiektów bazy. Najważniejszymi poleceniami języka DCL są instrukcje: GRANT pozwala użytkownikowi lub roli na wykonywanie operacji określonej przez nadane uprawnienie. DENY odmawia użytkownikowi lub roli określonego uprawnienia i zapobiega odziedziczeniu go po innych rolach. REVOKE usuwa uprzednio nadane lub odmówione uprawnienie. Modyfikowanie dostępu do tabel Dostęp do tabeli należy do efektywnych uprawnień, jakimi dysponuje użytkownik. Dostępem tym można sterować poprzez zarządzanie uprawnieniami na poziomie tabel. Uprawnienia, którymi można zarządzać, zostały przedstawione w tab. 1. Tab. 1 Uprawnienia, którymi można zarządzać na poziomie tabel Usprawnienie Opis ALTER CONTROL DELETE INSERT REFERENCES SELECT Umożliwia modyfikowanie właściwości tabeli Zapewnia uprawnienia właściciela Umożliwia usuwanie wierszy tabeli Umożliwia wstawienia wierszy do tabeli Umożliwia odwoływanie się do tabel z obcego klucza Umożliwia wybieranie wierszy tabeli Strona 3/20

TAKE OWNERSHIP UPDATE VIEW DEFINITION Umożliwia przejęcie prawa własności do tabeli Umożliwia aktualizowanie wierszy tabeli Umożliwia dostęp do meta danych tabeli Przyznawanie praw dostępu do tabeli Za pomocą instrukcji GRANT można przyznawać prawa dostępu dla użytkownika oraz roli bazy danych. W poniższym przykładzie użytkownik otrzyma uprawnienia SELECT, INSERT oraz UPDATE do pewnej tabeli: GRANT SELECT, INSERT, UPDATE ON nazwa_tabeli TO nazwa_uzytkownika Ograniczanie praw dostępu do tabel W celu zabronienia użytkownikowi praw dostępu można zetknąć się z dwojaką sytuacją. 1. Jeśli użytkownik zostały przyznane uprawnienia do tabeli, aby je zdjąć, należy użyć instrukcji REVOKE: REVOKE SELECT ON nazwa_tabeli TO nazwa_uzytkownika 2. Może zdarzyć się sytuacja, że mimo zdjęcia uprawnień, użytkownik nadal dysponuje tymi uprawnieniami, jeżeli należy do roli, której to uprawnienie przyznano. W takim przypadku należy użyć instrukcji DENY: DENY DELETE ON nazwa_tabeli TO nazwa_uzytkownika Zapewnienie dostępu do pojedynczych kolumn Istnieje również możliwość przyznawania lub odmawiania praw dostępu nie tylko do tabel, ale również do poszczególnych kolumn. W tab. 2 pokazano uprawnienia dotyczące zarządzaniem kolumnami tabeli. Tab. 2 Uprawnienia dotyczące zarządzaniem kolumn tabeli Uprawnienia Opis SELECT UPDATE REFERENCE Umożliwia wykonywanie selekcji na kolumnie Umożliwia aktualizowanie kolumny Umożliwia odwoływanie się do kolumny z obcego klucza Nadawanie praw dostępu do kolumn Prawa dostępu do pojedynczej kolumny nadajemy poleceniem GRANT. W poniższym przykładzie użytkownikowi zostanie nadane uprawnienie SELECT oraz UPDATE dotyczące kolumn kolumna1, kolumna2 itd. w tabeli: GRANT SELECT, UPDATE(kolumna1[, kolumna2[,...n]]) ON nazwa_tabeli TO nazwa_uzytkownika Strona 4/20

Odmawianie praw dostępu do kolumn Podobnie jak w przypadku tabel, tak również w przypadku poszczególnych kolumn przy odmawianiu praw dostępu użytkownikowi można zetknąć się z dwojaką sytuacją: 1. Jeśli użytkownik zostały przyznane uprawnienia do poszczególnych kolumn tabeli, aby je zdjąć, należy użyć instrukcji REVOKE: REVOKE UPDATE ON nazwa_tabeli TO nazwa_uzytkownika 2. Może zdarzyć się sytuacja, że mimo zdjęcia uprawnień, użytkownik nadal dysponuje tymi uprawnieniami, jeżeli należy do roli, której to uprawnienie przyznano. W takim przypadku należy użyć instrukcji DENY: DENY DELETE ON nazwa_tabeli TO nazwa_uzytkownika Zarządzanie dostępem do obiektów programowalnych Obiekty programowalne, takie jak procedury składowane, mają swój własny kontekst zabezpieczeń. Zatem po to, żeby użytkownik mógł wykonać procedurę składowaną, potrzebuje odpowiednich uprawnień. Kiedy aparat bazy danych sprawdzi uprawnienia do wykonywania procedury składowanej i są one właściwe, wówczas sprawdza, czy użytkownik posiada odpowiednie uprawnienia do wykonywania operacji wewnątrz obiektów. Tak jak i inne obiekty, procedury składowane muszą być w odpowiedni sposób zabezpieczone. Aspekt zabezpieczania procedur składowanych można potraktować dwojako. Z jednej strony potrzebne są uprawnienia na przykład do tworzenia procedur składowanych, a z drugiej strony użytkownicy muszą mieć odpowiednie uprawnienia do wywołania tej procedury. Tab. 3 przedstawia uprawnienia dotyczące procedur składowanych. Tab. 3 Uprawnienia dotyczące procedur składowanych Uprawnienia Opis ALTER CONTROL EXECUTE TAKE OWNERSHIP VIEW DEFINITION Umożliwia modyfikację właściwości procedury składowanej Zapewnia uprawnienia właściciela Umożliwia wykonywanie procedury składowanej Umożliwia przejęcie prawa własności do procedury składowanej Umożliwia przeglądanie meta danych procedury składowanej W momencie kiedy aplikacja żąda wywołania procedury składowanej, SQL Server musi sprawdzić, czy użytkownik posiada uprawnienia EXECUTE dotyczące tej procedury. GRANT EXECUTE On nazwa_procedury_skladowanej TO nazwa_uzytkownika W taki sam sposób możemy odwołać lub odmówić użytkownikowi uprawnienia EXECUTE. Polecenia DDL Instrukcje języka DDL służą do manipulowania bazą danych i jej obiektami. Pozwalają one na: tworzenie nowych obiektów modyfikowanie obiektów już istniejących usuwanie obiektów Strona 5/20

Do podstawowych instrukcji języka DDL należą: CREATE służy do tworzenie nowych obiektów. ALTER służy do modyfikacji obiektów już istniejących. DROP służy do usunięcia obiektu już istniejącego. Tworzenie nowych obiektów Tworzenie nowych obiektów omówimy w kontekście tabel i widoków. W celu stworzenia nowej tabeli wywołujemy instrukcję CREATE TABLE. Składnia częściowa tej instrukcji została przedstawiona poniżej: CREATE TABLE nazwa_tabeli ( nazwa_kolumny1 typ_danych [NULL NOT NULL][, nazwa_kolumny2 typ_danych [NULL NOT NULL][,...n]] ) Przy definiowaniu tabeli należy podać jej nazwę, nazwy jej atrybutów oraz typ danych, które te atrybuty mogą przyjmować. Dodatkowo określamy, czy dany atrybut może przyjmować wartość NULL czy nie. Przykład tworzenia tabeli pokazano poniżej: CREATE TABLE Osoba ( ID_Osoba int NOT NULL, Nazwisko char(50) NOT NULL, Imie char(20) NOT NULL, Telefon int NULL ) W podobny sposób tworzymy widoki. W celu stworzenia nowego widoku wywołujemy instrukcję CREATE VIEW. Składnia częściowa tej instrukcji została przedstawiona poniżej: CREATE VIEW nazwa_widoku[(kolumna1, [kolumna2[,...n])] AS SELECT wyrazenie_select Przy definiowaniu widoku należy podać jego nazwę, nazwę kolumn, które będą używane w widoku, oraz wyrażenie SELECT, które definiuje widok. Polecenie to może używać nie tylko jedna, ale również wiele tabel, jak również innych widoków. Przykład tworzenia widoku pokazano poniżej: CREATE VIEW Praca_dyplomowa(ID_Praca, Nazwisko, Imię, Tytuł) AS SELECT ID_Praca, Imię, Nazwisko, Tytuł FROM Praca Modyfikowanie obiektów Po stworzeniu obiektu powinniśmy móc go w razie jakiejkolwiek potrzeby zmodyfikować. Do modyfikacji obiektów (zarówno tabel jak i widoków) służy polecenie ALTER. W celu modyfikacji istniejącej tabeli należy zastosować polecenie ALTER TABLE, którego uproszczona składnię częściową pokazano poniżej: ALTER TABLE nazwa_tabeli { { ALTER COLUMN nazwa_kolumny ADD <definicja_kolumny> } [{ NULL NOT NULL }] } DROP COLUMN nazwa_kolumny } <definicja_kolumny> ::= nazwa_kolumny typ_danych Najczęściej polecenie ALTER TABLE stosuje się do zmiany schematu relacji. Przykład zastosowania tego polecenia do dodania lub usunięcia kolumny z tabeli pokazano poniżej: ALTER TABLE nazwa_tabeli ADD nazwa_kolumny typ_danych ALTER TABLE nazwa_tabeli DROP COLUMN nazwa_kolumny Strona 6/20

Podobnie jak tabelę możemy zmodyfikować widok. W celu modyfikacji istniejącego widoku należy zastosować polecenie ALTER VIEW, którego uproszczona składnię częściową pokazano poniżej: ALTER VIEW nazwa_widoku [(kolumna1[, kolumna2[,...n]])] AS SELECT wyrazenie_select Przy modyfikacji widoku należy podać nazwę modyfikowanego widoku, nazwę jednej lub wielu kolumn, z których składać się ma nowy widok oraz wyrażenie SELECT, które ma definiować nowy widok. Przykład zastosowania instrukcji modyfikacji widoku pokazano poniżej: ALTER VIEW Praca_dyplomowa(Nazwisko, Imię, Tytuł) AS SELECT Imię, Nazwisko, Tytuł FROM Praca Usuwanie obiektów Po stworzeniu obiektu powinniśmy móc go w razie jakiejkolwiek potrzeby usunąć. Do usuwania obiektów (zarówno tabel jak i widoków) służy polecenie DROP. W celu usunięcia istniejącej tabeli, należy zastosować polecenie DROP TABLE. Usuwa ono również schemat tabeli. Jego uproszczoną składnię częściową pokazano poniżej: DROP TABLE nazwa_tabeli gdzie w nazwie tabeli podajemy nazwę obiektu, który chcemy usunąć. Przykładowo: DROP TABLE Osoba W celu usunięcia istniejącego widoku należy zastosować polecenie DROP VIEW. Jego uproszczoną składnię częściową pokazano poniżej: DROP VIEW nazwa_widoku gdzie w nazwie widoku podajemy nazwę obiektu, który chcemy usunąć. Przykładowo: DROP VIEW Osoba, PracaDyplomowa Przykładowe rozwiązanie Dodawanie użytkowników Dodawać użytkowników można na dwa sposoby. Pierwszy polega na tworzeniu użytkowników z poziomu języka T-SQL używając procedur składowanych. Drugi na tworzeniu użytkowników z poziomu SQL Server Management Studio. Poniżej zaprezentujemy obydwie metody. Tworzenie użytkowników z poziomu języka T-SQL Pierwszym krokiem związanym z zarządzaniem użytkownikami jest stworzenie użytkowników serwera i bazy danych. W tym celu stosujemy systemową procedurę składowaną sp_addlogin. W naszym przykładzie stworzymy dwóch użytkowników: Konsultant1 i Konsultant2. EXEC sp_addlogin Konsultant1 EXEC sp_addlogin Konsultant2 Następnie powinniśmy zezwolić nowo stworzonym użytkownikom na dostęp do bazy danych. W tym celu używamy systemowej procedury składowanej sp_grantdbaccess. W naszym przykładzie mamy: EXEC sp_grantdbaccess Konsultant1 EXEC sp_grantdbaccess Konsultant2 Po stworzeniu użytkowników i daniu im możliwości dostępu do bazy danych, w kolejnym kroku powinniśmy dodać ich do roli. W tym celu używamy systemowej procedury składowanej sp_addrolemember. W naszym przykładzie mamy: Strona 7/20

EXEC sp_addrolemember Obsluga, Konsultant1 EXEC sp_addrolemember Obsluga, Konsultant2 W wyniku stworzyliśmy dwóch użytkowników: Konsultant1 i Konsultant2, którym nadaliśmy prawo dostępu do bazy danych, a następnie przydzieliliśmy ich do roli Obsluga. Tworzenie użytkowników z poziomu SQL Server Management Studio W celu stworzenia użytkowników poziomu SQL Server Menagemant Studio, w pierwszym kroku należy dodać użytkowników do serwera bazodanowego. W tym celu w obrębie Object Explorer wybieramy katalog Security, a następnie Login. W obrębie zakładki Login wybieramy prawym przyciskiem myszy New Login, a następnie dodajemy nazwę użytkownika, sposób autoryzacji, ustawiamy hasło, które użytkownik zmieni przy pierwszym logowaniu, domyślną bazę danych oraz język domyślny, co pokazano na rys. 2. Rys. 2 Zakładanie konta na SQL Server 2008 użytkownikowi W analogiczny sposób tworzymy drugiego użytkownika. W następnym etapie dodajemy obydwu użytkowników do bazy danych. W tym celu w obrębie Object Explorer wybieramy Datatabase, a następnie bazę danych, do której chcemy przypisać użytkowników. W naszym przypadku będzie to baza Obsluga. Następnie wybieramy zakładkę Security i Users. W obrębie zakładki Users wybieramy prawym przyciskiem myszy New User, a następnie dodajemy użytkownika, który został wcześniej stworzony na poziomie serwera, co pokazano na rys. 1. W analogiczny sposób postępujemy z drugim użytkownikiem. Strona 8/20

Rys. 3 Dodawanie użytkownika do bazy danych Na końcu należy jeszcze zmienić ustawienia serwera tak, żeby nowi użytkownicy mogli się zalogować. W tym celu klikamy prawym przyciskiem myszy instancję serwera i wybieramy Properties, a następnie Security i zaznaczamy opcję SQL Server and Windows Authentication mode, co pokazano na rys. 4. Rys. 4 Ustawienie autoryzacji Zarządzanie uprawnieniami dostępu do tabeli Podobnie jak w przypadku dodawania użytkowników, tak i teraz podczas nadawania uprawnień dostępu do tabel możemy uczynić to na dwa sposoby. Pierwszy polega na nadawaniu uprawnień użytkownikom z poziomu języka T-SQL. Drugi na nadawaniu uprawnień użytkownikom z poziomu SQL Server Management Studio. Nadawanie uprawnień z poziomu języka T-SQL W celu przyznania użytkownikowi prawa dostępu stosujemy instrukcję GRANT. Przykładowo by nadać prawo przeglądania i wstawiania danych do tabeli Klienci stworzonemu wcześniej użytkownikowi Konsultant1 możemy zastosować następujące polecenie: GRANT SELECT, INSERT ON Klienci TO Konsultant1 W podobny sposób możemy nadać wspomniane wcześniej uprawnienia roli Obsluga: GRANT SELECT, INSERT ON Klienci TO Obsluga Analogicznie odmawiamy (DENY) lub usuwamy (REVOKE) użytkownikowi lub roli uprawnienia. W wielu sytuacjach znacznie bezpieczniejszym rozwiązaniem jest przydzielenie użytkownikowi prawa wykonania procedury składowanej. Załóżmy, że posiadamy procedurę składowaną proc_klienci, która zwraca w wyniku zbiór wierszy reprezentujących klientów. W naszym Strona 9/20

przykładzie przydzielimy prawo wykonania procedury składowanej użytkownikowi Konsultant2. Zatem będziemy mieli: GRANT EXECUTE ON proc_klienci TO Konsultant2 W analogiczny sposób możemy przydzielić prawo wykonywania procedury składowanej roli Obsluga. Zatem będziemy miel: GRANT EXECUTE ON proc_klienci TO Obsluga Nadawanie uprawnień z poziomu SQL Server Management Studio W celu nadania użytkownikowi uprawnień dostępu do obiektu typu tabela, należy w obrębie zakładki Tables wybrać tabelę Uzytkownik, a następnie kliknąć prawym przyciskiem myszy i wybrać Properties. W obrębie okna Table Proberties wybieramy zakładkę Permissions. Mając zdefiniowanego użytkownika na poziomie bazy danych Obsluga, nadajemy mu odpowiednie uprawnienia. W naszym przypadku dajemy mu możliwość przeglądania tabeli, co pokazano na rys. 5. Operacje na obiektach Rys. 5 Nadanie uprawnień na tabeli Uzytkownik Załóżmy, że chcemy stworzyć nowy obiekt w postaci tabeli, która będzie przechowywała informacje o klientach. W tym celu stosujemy polecenie CREATE TABLE, co pokazano poniżej: CREATE TABLE Klienci ( ID_Klient int NOT NULL, Firma char(100) NOT NULL, Nazwisko char(50) NOT NULL, Imie char(20) NOT NULL, Telefon int NULL, Fax int NULL, email char(20) NULL ) Strona 10/20

Jeżeli użytkownikowi Konsultant2 chcemy nadać prawo przeglądania danych o klientach, możemy dla tabeli Klienci stworzyć widok z udostępnionymi danym, a użytkownikowi dać prawo dostępu do widoku. Zatem tworzymy widok jak poniżej i nadajemy prawo dostępu do widoku w analogiczny sposób, jak pokazano wyżej dla obiektu typu tabela. CREATE VIEW Klienci_Obsluga(Firma, Nazwisko, Imię, Telefon) AS SELECT Imię, Nazwisko, Firma, Telefon FROM Klienci Załóżmy, że chcemy dodać kolumnę przechowująca informacje o stronie internetowej do tabeli Klienci. Wówczas: ALTER TABLE Klienci ADD www char(50) NULL W analogiczny sposób możemy zmodyfikować widok Klienci_Obsluga tak, żeby użytkownik Konsultant2 mógł przeglądać adresy stron internetowych klientów. Zatem: ALTER VIEW Klienci_Obsluga (Firma, Nazwisko, Imię, Telefon, www) AS SELECT Imię, Nazwisko, Firma, Telefon, www FROM Klienci Załóżmy, że chcemy usunąć kolumnę przechowująca informacje o numerze faksu z tabeli Klienci. Wówczas: ALTER TABLE Klienci DROP COLUMN fax Porady praktyczne Język T-SQL DCL Przyznawanie lub odmawianie praw dostępu do poszczególnych kolumn zwiększa elastyczność w zarządzaniu dostępem na przykład do poufnych danych z niektórych kolumn. W zarządzaniu dostępem do obiektów programowalnych występuje zagadnienie łańcucha praw własności. Łańcuch praw własności jest sekwencją obiektów bazy danych uzyskujących dostęp do siebie nawzajem. W sytuacji, kiedy w tabeli są wiersze uzyskane z procedury składowanej, procedura ta jest obiektem wywołującym, a tabela obiektem wywoływanym. Gdy SQL Server napotka na taki łańcuch, aparat bazy danych sprawdza uprawnienia inaczej niż w przypadku indywidualnego dostępu do obiektów. Tworzenie użytkowników oraz nadawanie im uprawnień może odbywać się na dwa sposoby. Pierwszy wymaga znajomości języka T-SQL. Drugi sposób polega na wykorzystaniu graficznych narzędzi dostępnych w SQL Server Menagement Studio. W przypadku tworzenia użytkowników z poziomu języka T-SQL musimy znać odpowiednie procedury składowane, których należy w tym celu użyć. W procedurach składowanych zapisane są ustawienia, które zostaną wprowadzone podczas ich użycia. Możemy nadawać uprawnienia do różnych obiektów w bazie danych. W rozdziale Przykładowe rozwiązanie pokazano w jaki sposób nadawać uprawnienia do obiektu typu tabela. W analogiczny sposób możemy nadawać uprawnienia do obiekty typu: widok, funkcja czy procedura składowana. Użytkowników możemy grupować według nadanych im uprawnień. Wówczas możemy założyć role i pogrupować użytkowników według ról, jakie pełnią w bazie danych. W wyniku tego możemy przypisać dostęp do obiektów bazy danych nie tylko pojedynczemu użytkownikowi, ale również grupom użytkowników zapisanych w roli. Język T-SQL DDL Poleceniem CREATE możemy utworzyć nie tylko tabelę czy widok, lecz również obiekt programowalny w postaci procedury składowanej. W tym celu wywołujemy instrukcję CREATE PROCEDURE. Przykładowa składnia częściowa instrukcji tworzenia procedury bez parametru została pokazana poniżej: Strona 11/20

CREATE PROCEDURE nazwa_procedury AS SELECT wyrazenie Polecenie ALTER, podobnie CREATE, może być stosowane w odniesieniu do obiektu programowalnego w postaci procedury składowanej. W tym celu wywołujemy instrukcję ALTER PROCEDURE. Przykładowa składnia częściowa instrukcji modyfikowania procedury została pokazana poniżej: ALTER PROCEDURE nazwa_procedury [WITH { RECOMPILE ENCRYPTION }] AS SELECT wyrazenie W celu usunięcia istniejącej procedury składowanej należy zastosować polecenie DROP PROCEDURE. Jego uproszczoną składnię częściową pokazano poniżej: DROP PROCEDURE nazwa_widoku Tworzenie, modyfikacja i usuwanie może odbywać się na obiektach typu: baza danych, funkcja, indeks, tabela, procedura składowana, widok, wyzwalacz. Polecenie CREATE służy do tworzenia wszystkich obiektów baz danych: tabel (CREATE TABLE), widoków (CREATE VIEW), procedur składowanych (CREATE PROCEDURE), indeksów (CREATE INDEX), wyzwalaczy (CREATE TRIGGER). Tylko tymczasowe twory, takie jak zmienne czy kursory, deklaruje się (nie tworzy) za pomocą polecenia DECLARE. Do istniejącej tabeli możemy zawsze dodać ograniczenia na istniejąca kolumnę, przykładowo: ALTER TABLE Osoba_1 ADD CONSTRAINT CK_Nr_Indeksu CHECK (Nr_Indeksu > 10000) Ograniczenie to wymusza wstawianie w kolumnie Nr_indeksu liczb całkowitych większych od 10000. Uwagi dla studenta Jesteś przygotowany do realizacji laboratorium jeśli: rozumiesz zasadę zarządzania uprawnieniami do obiektów bazy danych rozumiesz mechanizm manipulowania bazą danych i jej obiektami umiesz podać przykłady obiektów baz danych, do których można zastosować składnię języka T-SQL DDL oraz T-SQL DCL Pamiętaj o zapoznaniu się z uwagami i poradami zawartymi w tym module. Upewnij się, że rozumiesz omawiane w nich zagadnienia. Jeśli masz trudności ze zrozumieniem tematu zawartego w uwagach, przeczytaj ponownie informacje z tego rozdziału i zajrzyj do notatek z wykładów. Dodatkowe źródła informacji 1. Kalen Delaney, Microsoft SQL Server 2005: Rozwiązania praktyczne krok po kroku, Microsoft Press, 2006 W książce autor w przystępny i zrozumiały sposób przedstawia, między innymi, w jaki sposób nadawać prawa dostępu do bazy danych oraz jak zarządzać rolami. Następnie pokazuje, jak prosto można nadawać uprawnienia do obiektów bazy danych typu tabela i widok. 2. Edward Whalen, Microsoft SQL Server 2005 Administrator s Companion, Microsoft Press, 2006 W książce autor pokazał, w jaki sposób można zorganizować nadawanie uprawnień do bazy danych oraz do obiektów bazy danych od strony administracyjnej. Przybliża również, jak należy planować politykę bezpieczeństwa serwera i bazy danych Strona 12/20

poprzez nadawanie odpowiednich uprawnień. Pozycja szczególnie polecana osobom chcącym poszerzyć wiedzę o tych elementach administracji serwerem. 3. Deren Bieniek, Randy Dyess, Mike Hotek, Javier Loria, Adam Machanic, Antonio Soto, Adolfo Wiernik, SQL Server 2005. Implementacja i obsługa, APN Promise, 2006 W książce przedstawiono obie składowe języka T-SQL: DCL i DDL. Pokazano, w jaki sposób tworzyć użytkowników, nadawać im uprawnienia oraz jak tworzyć, modyfikować i usuwać podstawowe obiekty bazy danych. Książka szczególnie warta polecenia ze względu na dużą zawartość ćwiczeń laboratoryjnych. 4. Dusan Petkovic, Microsoft SQL Server 2008: A Beginner's Guide, McGraw-Hill, 2008 Pozycja napisana w sposób przystępny. Wprowadza w SQL Server 2008 w sposób szybki i łatwy. Osoba początkująca w SQL Server 2008 znajdzie w niej podstawy z każdego tematu dotyczącego serwera bazodanowego. W prosty sposób dowiesz się, jak należy definiować użytkowników i nadawać im uprawnienia oraz jak tworzyć, modyfikować i usuwać podstawowe obiekty bazy. Pozycja szczególnie polecana dla osób początkujących. Strona 13/20

Laboratorium podstawowe Problem 1 (czas realizacji 15 min) Jesteś administratorem w firmie National Insurance. Właśnie dowiedziałeś się od swojego szefa, że firma planuje rozszerzenie systemu prac dyplomowych na Twoim wydziale, którym zarządza, na skalę uczelniana. Pierwsze zadanie, jakie przed Tobą stoi, to zdefiniowanie nowych użytkowników oraz modyfikacja użytkowników istniejących. Zadanie 1. Nawiąż połączenie z SQL Server 2008 Tok postępowania Uruchom maszynę wirtualną BD2008. Jako nazwę użytkownika podaj Administrator. Jako hasło podaj P@ssw0rd. Jeśli nie masz zdefiniowanej maszyny wirtualnej w Microsoft Virtual PC, dodaj nową maszynę używając wirtualnego dysku twardego z pliku D:\VirtualPC\Dydaktyka\BD2008.vhd. Kliknij Start. Z grupy programów Microsoft SQL Server 2008 uruchom SQL Server Management Studio. W oknie logowania kliknij Connect. 2. Utwórz tabelę Z menu głównego wybierz File -> Open -> File. Odszukaj plik C:\Labs\Lab06\ddl.sql. Zaznacz i uruchom (F5) poniższy fragment kodu: -- (1) Ustawiamy PraceDyplomowe jako baze robocza USE PraceDyplomowe 3. Zmodyfikuj tabelę -- (2) Tworzymy w bazie danych tabele Osoba_1 CREATE TABLE Osoba_1( ID_Osoby smallint NOT NULL, Imie varchar(10) NOT NULL, Nazwisko varchar(10) NOT NULL, Nr_Indeksu varchar(10) NULL, ID_Stopnien smallint NULL ) Mając otwarty skrypt ddl.sql w oknie Query zaznacz i uruchom poniższy fragment kodu odpowiedzialny za zmianę definicji kolumny Nazwisko: -- (3) zmiana definicji kolumny Nazwisko ALTER TABLE Osoba_1 ALTER COLUMN Nazwisko varchar(40) NOT NULL ALTER COLUMN Nr_Indeksu int NULL Dodaj do tabeli Osoba_1 kolumnę przechowującą informacje o numerze telefonu. W tym celu zaznacz i uruchom (F5) poniższy fragment kodu: -- (4) Dodanie kolumny Telefon ALTER TABLE Osoba_1 ADD Telefon int Dodaj ograniczenia na kolumnę indeks. W tym celu zaznacz i uruchom (F5) poniższy fragment kodu. -- (5) Dodajmy ograniczenie na kolumne Nr_Indeksu ALTER TABLE Osoba_1 Strona 14/20

ADD CONSTRAINT CK_Nr_Indeksu CHECK (Nr_Indeksu > 10000) Usuń ograniczenia nałożone w poprzednim kroku. W tym celu zaznacz i uruchom (F5) poniższy fragment kodu. -- (6) Usuwamy ograniczenie na kolumnie Nr_Indeksu ALTER TABLE Osoba_1 DROP CONSTRAINT CK_Nr_Indeksu Usuń kolumnę Telefon. W tym celu zaznacz i uruchom (F5) poniższy fragment kodu. -- (7) Usuwamy kolumne Telefon ALTER TABLE Osoba_1 DROP COLUMN Telefon 4. Usuń tabelę Usuń tabelę Osoba_1. W tym celu mając otwarty skrypt ddl.sql zaznacz i uruchom (F5) poniższy fragment kodu. -- (8) Usuwamy tabele Osoba_1 DROP TABLE Osoba_1 Problem 2 (czas realizacji 30 min) W wyniku rozszerzenia systemu zarządzania pracami dyplomowymi na skalę uczelni, kolejne zadanie, jakie przed tobą stoi, to przydzielenie nowo zdefiniowanym użytkownikom odpowiednich praw dostępu do obiektów w Twojej bazie danych. Zadanie 1. Nawiąż połączenie z SQL Server 2008 2. Dodaj użytkowników do bazy danych Tok postępowania Uruchom maszynę wirtualną BD2008. Jako nazwę użytkownika podaj Administrator. Jako hasło podaj P@ssw0rd. Jeśli nie masz zdefiniowanej maszyny wirtualnej w Microsoft Virtual PC, dodaj nową maszynę używając wirtualnego dysku twardego z pliku D:\VirtualPC\Dydaktyka\BD2008.vhd. Kliknij Start. Z grupy programów Microsoft SQL Server 2008 uruchom SQL Server Management Studio. W oknie logowania kliknij Connect. Z menu głównego wybierz File -> Open -> File. Odszukaj pliku C:\Labs\Lab06\dcl_1.sql. Zaznacz i uruchom (F5) poniższy fragment kodu. Wynik pokazano na rys. 6. -- (1) Ustawiamy PraceDyplomowe jako baze robocza USE PraceDyplomowe -- (2) Dodajmy dwoch nowych uzytkownikow serwera i bazy danych, Sekretariat1 i Sekretariat2, umiescmy ich w grupie Dziekanat EXEC sp_addlogin Sekretariat1 EXEC sp_addlogin Sekretariat2 EXEC sp_grantdbaccess Sekretariat1 EXEC sp_grantdbaccess Sekretariat2 Strona 15/20

EXEC sp_addrole Dziekanat EXEC sp_addrolemember Dziekanat, Sekretariat1 EXEC sp_addrolemember Dziekanat, Sekretariat2 Rys. 6 Dodanie użytkowników do bazy danych W oknie Object Explorer kliknij przycisk Connect -> Database Engine. W zakładce Authentication wybierz SQL Server Authentication. W polu Login wpisz użytkownika Sekretariat1. Hasło pozostaw puste. W wyniku powinieneś uzyskać połączenie do drugiej instancji serwera, co pokazano na rys. 7. Rys. 7 Podłączenie do drugiej instancji serwera Odszukaj pliku C:\Labs\Lab06\dcl_2.sql. Zaznacz i uruchom (F5) poniższy fragment kodu. Wynik pokazano na rys. 8: -- (1) Ustawmy PraceDyplomowe jako baze robocza USE PraceDyplomowe -- (2) sprawdzamy, czy mamy uprawnienia do wykonania -- polecenia SELECT na tabeli Osoba SELECT * FROM Osoba Strona 16/20

Pamiętaj, że powyższy fragment kodu zawarty w skrypcie dcl_2.sql wykonujemy z zalogowanym użytkownikiem Sekretatiat1 Rys. 8 Sprawdzenie uprawnienia wykonania polecenia SELECY na tabeli Osoba Wykonanie poprzedniego polecenia nie powiodło się, ponieważ domyślne uprawnienia nowego użytkownika nie pozwalają na wykonanie żadnego polecenia w bazie danych. Skoro nie mamy uprawnień do wykonywania poleceń, tym bardziej nie możemy ich nadawać. Spróbuj nadać uprawnienia innemu użytkownikowi, będąc zalogowanym jako Sekretariat1. W tym celu zaznacz i uruchom (F5) poniższy fragment kodu: -- (3) Spróbujmy nadać uprawnienia innemu użytkownikowi GRANT SELECT ON Osoba TO Sekretariat2 Podjąłeś nieudaną próbę nadania innemu użytkownikowi (Sekretariat2) uprawnień do wykonywania polecenia SELECT w tabeli Osoba. 3. Nadaj uprawnienia Przełącz się do okna ze skryptem dcl_1.sql. Zaznacz i uruchom (F5) poniższy fragment kodu: -- (3) Nadaj uprawnienia do wykonywania polecenia SELECT -- w tabeli Osoba użytkownikowi Sekretariat1 GRANT SELECT ON Osoba TO Sekretariat1 Przełącz się do okna ze skryptem dcl_2.sql uruchomionego w kontekście użytkownika Sekretariat1. Zaznacz i uruchom (F5) poniższy fragment kodu. Wynik uruchomienia pokazano na rys. 9: -- (1) Ustawmy PraceDyplomowe jako baze robocza USE PraceDyplomowe -- (2) sprawdzamy, czy mamy uprawnienia do wykonania -- polecenia SELECT na tabeli Osoba SELECT * FROM Osoba Strona 17/20

Rys. 9 Sprawdzenie uprawnien do wykonania polecenia SELECT 4. Cofnij uprawnienia 5. Odbierz uprawnienia Zaznacz i uruchom (F5) ponownie poniższy fragment kodu: -- (3) Nadaj uprawnienia do wykonywania polecenia SELECT -- w tabeli Osoba użytkownikowi Sekretariat2 GRANT SELECT ON Osoba TO Sekretariat2 I tym razem nie udaje się nadać praw innemu użytkownikowi, czyli nadanie uprawnień do wykonywania polecenia nie jest równoznaczne z umożliwieniem nadawania uprawnień innym użytkownikom. Przełącz się do okna, w którym masz uruchomiony skrypt dcl_1.sql. Zaznacz i uruchom (F5) poniższy fragment kodu: -- (4) Cofnij uprawnienia do wykonywania polecenia SELECT -- w tabeli Osoba użytkownikowi Sekretariat1 REVOKE SELECT ON Osoba FROM Sekretariat1 Przełącz się do okna, w którym masz uruchomiony skrypt dcl_2.sql. Zaznacz i uruchom (F5) ponownie poniższy fragment kodu: -- (2) sprawdźmy, czy mamy uprawnienia do wykonania -- polecenia SELECT na tabeli Osoba SELECT * FROM Osoba Po cofnięciu uprawnień do wykonania polecenia SELECT uruchomienie tego fragmentu skryptu powinno zwrócić informację o błędzie. Przełącz się do okna, w którym masz uruchomiony skrypt dcl_1.sql. Zaznacz i uruchom (F5) ponownie poniższy fragment kodu: -- (3) Nadaj uprawnienia do wykonywania polecenia SELECT -- w tabeli Osoba użytkownikowi Sekretariat1 GRANT SELECT ON Osoba TO Sekretariat1 Przełącz się do okna, w którym masz uruchomiony skrypt dcl_2.sql. Zaznacz i uruchom (F5) ponownie poniższy fragment kodu: -- (2) sprawdzmy, czy mamy uprawnienia do wykonania -- polecenia SELECT na tabeli Osoba Strona 18/20

SELECT * FROM Osoba Przełącz się do okna, w którym masz uruchomiony skrypt dcl_1.sql. Zaznacz i uruchom (F5) ponownie poniższy fragment kodu: -- (5) Zabroń wykonywania polecenia SELECT -- w tabeli Osoba grupie Dziekanat DENY SELECT ON Osoba TO Dziekanat Powyższy kod spowoduje zabronienie wszystkim użytkownikom w grupie Dziekanat (czyli u nas konkretnie użytkownikom Sekretariat1 i Sekretariat2) wykonywania polecenia SELECT w tabeli Osoba. Przełącz się do okna, w którym masz uruchomiony skrypt dcl_2.sql. Zaznacz i uruchom (F5) ponownie poniższy fragment kodu: -- (2) sprawdzmy, czy mamy uprawnienia do wykonania -- polecenia SELECT na tabeli Osoba SELECT * FROM Osoba Tym razem okaże się, że nie możemy wykonać polecenia SELECT. Dzieje się tak dlatego, że przed momentem zabroniliśmy grupie Dziekanat, do której należy użytkownik, w którego kontekście pracujemy, wykonywania polecenia SELECT. 6. Przekaż uprawnienia Przełącz się do okna w którym masz uruchomiony skrypt dcl_1.sql. Zaznacz i uruchom (F5) ponownie poniższy fragment kodu: -- (6) nadaj uprawnienia do wykonywania polecenia SELECT -- w tabeli Osoba uzytkownikowi Sekretariat1 -- z opcja nadawania przez uzytkownika uprawnien -- do wykonywania polecenia SELECT w tej tabeli GRANT SELECT ON Osoba TO Sekretariat1 WITH GRANT OPTION Przełącz się do okna, w którym masz uruchomiony skrypt dcl_2.sql. Zaznacz i uruchom (F5) ponownie poniższy fragment kodu: -- (3) sprobujmy nadac uprawnienia innemu uzytkownikowi GRANT SELECT ON Osoba TO Sekretariat2 Strona 19/20

Laboratorium rozszerzone Zadanie 1 (czas realizacji 90 min) Jesteś administratorem w firmie National Insurance. Właśnie dowiedziałeś się od swojego szefa, że firma zarządzająca bazą AdventureWorks planuje rozszerzenie i modernizację systemu w celu spełnienia pewnych standardów. W związku z modernizacją systemu bazodanowego, najprawdopodobniej ulegną zmianie pewne obiekty w bazie danych (część najprawdopodobniej zostanie zmodyfikowanych, część stworzonych, a część usuniętych) oraz uprawnienia poszczególnych użytkowników oraz grup użytkowników do poszczególnych obiektów w bazie danych (tabel, widoków, procedur składowanych, funkcji itp.). Zadania, jakie przed Tobą stoją, to: 1. Podjęcie decyzji, które obiekty w bazie danych pozostaną bez zmian, a które zostaną zmodyfikowane lub usunięte. 2. Zdefiniowanie nowych użytkowników oraz zmodyfikowanie użytkowników istniejących w celu przydzielenia im praw do obiektów w zmodernizowanej bazie danych. 3. Przeorganizowanie grupy użytkowników i nadanie im uprawnień do obiektów bazy danych. Strona 20/20