 
ITA-101 Bazy Danych
Włodzimierz Dąbrowski, Przemysław Kowalczuk, Konrad Markowski
Moduł 5
Wersja 1.0
Język SQL - DCL, DDL
Spis treści
 
Włodzimierz Dąbrowski, Przemysław Kowalczuk, Konrad Markowski
Moduł 5
ITA-101 Bazy Danych
Język SQL DCL, DDL
Strona 2/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  zostaną  wprowadzone,  a  następnie  przedstawione 
na przykładach 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żyd podstawowych instrukcji języka T-SQL DDC
potrafił użyd 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ś:
wiedzied  w  jaki  sposób  stworzyd  bazę  danych  wraz  z  jej 
podstawowymi obiektami. 
wiedzied,  w  jaki  sposób  poruszad  się  po  Microsoft  SQL  Server 
Menagement Studio. 
wiedzied, w jaki sposób należy zakładad użytkowników i przypisywad 
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  zapoznad  się  z  materiałem  zawartym 
w Module 3 i Module 10. 
Moduł 5
Dodatek
Moduł 1
Moduł 2
Moduł 3
Moduł 4
Moduł 6
Moduł 7
Moduł 8
Moduł 9
Moduł 10
Moduł 11
Moduł 12
Moduł 13
Rys. 1 Mapa zależności modułu
 
Włodzimierz Dąbrowski, Przemysław Kowalczuk, Konrad Markowski
Moduł 5
ITA-101 Bazy Danych
Język SQL DCL, DDL
Strona 3/20
Przygotowanie teoretyczne
Przykładowy problem
Jak  zapewne wiesz z  bazy  danych  może korzystad  wielu  użytkowników, którzy  mogą  dysponowad 
różnymi  prawami  dostępu  do  różnych  obiektów  w  bazie  danych.  Najgorszym  rozwiązaniem  jaki 
może istnied to pełne zaufanie do osób korzystających z bazy i przydzielenie im wszystkich pełnych 
praw.  Ze  względu  na  bezpieczeostwo  danych  zawartych  w  bazie  dobrze  jest  stosowad  zasadę 
ograniczonego  zaufania  do  użytkownika.  Zatem  należy  zastanowid  się  jakiemu  użytkownikowi  lub 
jakiej  grupie  użytkowników  jakie  prawa  należy  przydzielid.  Dobrze  jest  wiedzied  w  jaki  sposób 
można  nadawad,  odmawiad  i  usuwad  prawa  dostępu.  W  kolejnym  kroku  należy  rozważyd,  czy 
użytkownik taki powinien mied 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  bezpieczeostwo  administrator  powinien 
zastanowid  się  czy  lepszym  rozwiązaniem  nie  byłoby  umożliwid  użytkownikowi  lub  grupie 
użytkowników  dostępu  do  obiektów  programowalnych  typu  procedury  składowane,  które 
wprowadzają kolejny stopieo bezpieczeostwa i maskują fizyczna struktur bazy danych. 
Podstawy teoretyczne
W części tej poznasz podstawy języka T-SQL DCL i T-SQL DDL. Dowiesz się w jaki sposób nadawad, 
odmawiad i usuwad użytkownikowi prawo do wykonywania operacji na poszczególnych  obiektach 
baz  danych,  typu  tabele  i  widoki,  w  jaki  sposób  zarządzad  dostępem  do  programowalnych 
obiektów. Nauczysz się tworzyd, modyfikowad i usuwad 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 uprawnieo, jakimi dysponuje użytkownik. Dostępem tym 
można  sterowad  poprzez  zarządzanie  uprawnieniami  na  poziomie  tabel.  Uprawnienia,  którymi 
można zarządzad, zostały przedstawione w Tab. 1. 
Tab. 1 Uprawnienia, którymi można zarządzad na poziomie tabel
Usprawnienie
Opis
ALTER
Umożliwia modyfikowanie właściwości tabeli
CONTROL
Zapewnia uprawnienia właściciela
DELETE
Umożliwia usuwanie wierszy tabeli
INSERT
Umożliwia wstawienia wierszy do tabeli
REFERENCES
Umożliwia  odwoływanie  się  do  tabel  z  obcego 
klucza 
SELECT
Umożliwia wybieranie wierszy tabeli
TAKE OWNERSHIP
Umożliwia przejęcie prawa własności do tabeli
 
Włodzimierz Dąbrowski, Przemysław Kowalczuk, Konrad Markowski
Moduł 5
ITA-101 Bazy Danych
Język SQL DCL, DDL
Strona 4/20
UPDATE
Umożliwia aktualizowanie wierszy tabeli
VIEW DEFINITION
Umożliwia dostęp do meta danych tabeli
Przyznawanie praw dostępu do tabeli 
Za  pomocą  instrukcji 
GRANT
można przyznawad 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ąd się z dwojaką sytuacją.  
1. Jeśli użytkownik zostały przyznane uprawnienia do tabeli, aby je zdjąd należy użyd instrukcji
REVOKE
:
REVOKE SELECT 
ON Nazwa_Tabeli 
TO Nazwa_Użytkownika 
2. Może zdarzyd się sytuacja, że mimo zdjęcia uprawnieo, użytkownik nadal dysponuje tymi
uprawnieniami,  jeżeli  należy  do  roli,  której  to  uprawnienie  przyznano.  W  takim  przypadku 
należy użyd instrukcji 
DENY
:
DENY DELETE 
ON Nazwa_Tabeli 
TO Nazwa_Użytkownika 
Zapewnienie dostępu do pojedynczych kolumn 
Istnieje  również  możliwośd  przyznawania  lub  odmawiania  praw  dostępu  nie  tylko  do  tabel,  ale 
również  do  poszczególnych  kolumn.  W  tabeli  2  pokazano  uprawnienia  dotyczące  zarządzaniem 
kolumnami tabeli. 
Tab. 2 Uprawnienia dotyczące zarządzaniem kolumn tabeli
Uprawnienia
Opis
SELECT
Umożliwia wykonywanie selekcji na kolumnie
UPDATE
Umożliwia aktualizowanie kolumny
REFERENCE
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
kolumna_1
,
Kolumna_2,…,kolumna_n w tabeli:
GRANT SELECT, UPDATE(kolumna_1, kolumna_2,…,kolumna_n) 
ON Nazwa_Tabeli 
TO Nazwa_Użytkownika 
 
Włodzimierz Dąbrowski, Przemysław Kowalczuk, Konrad Markowski
Moduł 5
ITA-101 Bazy Danych
Język SQL DCL, DDL
Strona 5/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ąd się z dwojaką sytuacją: 
1. Jeśli użytkownik zostały przyznane uprawnienia do poszczególnych kolumn tabeli, aby je
zdjąd należy użyd instrukcji
REVOKE
:
REVOKE UPDATE 
ON Nazwa_Tabeli 
TO Nazwa_Użytkownika 
2. Może zdarzyd się sytuacja, że mimo zdjęcia uprawnieo, użytkownik nadal dysponuje tymi
uprawnieniami,  jeżeli  należy  do  roli,  której  to  uprawnienie  przyznano.  W  takim  przypadku 
należy użyd instrukcji 
DENY
:
DENY DELETE 
ON Nazwa_Tabeli 
TO Nazwa_Użytkownika 
Zarządzanie dostępem do obiektów programowalnych 
Obiekty programowalne, takie jak procedury składowane, mają swój własny kontekst zabezpieczeo. 
Zatem  po  to,  żeby  użytkownik  mógł  wykonad  procedurę  składowaną,  potrzebuje  odpowiednich 
uprawnieo.  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ą  byd  w  odpowiedni  sposób  zabezpieczone. 
Aspekt  zabezpieczania  procedur  składowanych  można  potraktowad  dwojako.  Z  jednej  strony 
potrzebne  są  uprawnienia  na  przykład  do  tworzenia  procedur  składowanych,  a  z  drugiej  strony 
użytkownicy  muszą  mied  odpowiednie  uprawnienia  do  wywołania  tej  procedury.  Tabela  3 
przedstawia uprawnienia dotyczące procedur składowanych. 
Tab. 3. Uprawnienia dotyczące procedur składowanych 
Uprawnienia 
Opis
ALTER
Umożliwia modyfikację właściwości procedury składowanej
CONTROL
Zapewnia uprawnienia właściciela
EXECUTE
Umożliwia wykonywanie procedury składowanej
TAKE OWNERSHIP
Umożliwia przejęcie prawa własności do procedury składowanej
VIEW DEFINITION
Umożliwia przeglądanie meta danych procedury składowanej
 
W momencie kiedy aplikacja żąda wywołania procedury składowanej, SQL  Server musi sprawdzid, 
czy użytkownik posiada uprawnienia 
EXECUTE
dotyczące tej procedury.
GRANT EXECUTE On Nazwa_Procedury_Składowanej 
TO Nazwa_Użytkownika 
W taki sam sposób możemy odwoład lub odmówid 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
 
Włodzimierz Dąbrowski, Przemysław Kowalczuk, Konrad Markowski
Moduł 5
ITA-101 Bazy Danych
Język SQL DCL, DDL
Strona 6/20
usuwanie obiektów
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ę 
CTEATE TABLE
. Składnia częściowa tej instrukcji została
przedstawiona poniżej:
CREATE TABLE nazwa_tabeli (
nazwa_kolumny_1 typ_danych [NULL | NOT NULL]
nazwa_kolumny_2 typ_danych [NULL | NOT NULL]
)
Przy  definiowaniu  tabeli  należy  podad  jej  nazwę,  nazwy  jej  atrybutów  oraz  typ  danych,  które  te 
atrybuty  mogą  przyjmowad.  Dodatkowo  określamy,  czy  dany  atrybut  może  przyjmowad  wartośd 
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[(kolumna_1, kolumna_2,…,kolumna_n)] 
AS  
SELECT [(kolumna_1, kolumn_2,…,kolumna_n)] FROM nazwa_tabeli 
Przy definiowaniu widoku należy podad 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żywad 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  zmodyfikowad.  Do 
modyfikacji  obiektów  (zarówno  tabel  jak  i  widoków)  służy  polecenie 
ALTER
. W celu modyfikacji
istniejącej tabeli należy zastosowad polecenie
ALTER TABLE
, którego uproszczona składnię
częściową pokazano poniżej:
ALTER TABLE nazwa_tabeli 
{|[ALTER COLUMN nazwa_kolumny] 
  | { ADD  
    {<definicja_kolumny> :=nazwa_kolumny_typ_danych 
    {[NULL | NOT NULL] 
    | DROP COLUMN nazwa_kolumny} 
 
Włodzimierz Dąbrowski, Przemysław Kowalczuk, Konrad Markowski
Moduł 5
ITA-101 Bazy Danych
Język SQL DCL, DDL
Strona 7/20
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_koluny typ_danych  
ALTER TABLE Nazwa_Tabeli DROP COLUMN nazwa_kolumny 
Podobnie jak tabelę możemy zmodyfikowad widok. W celu modyfikacji istniejącego widoku należy 
zastosowad polecenie 
ALTER VIEW
, którego uproszczona składnię częściową pokazano poniżej:
ALTER VIEW nazwa_widoku [(kolumna_1, kolumna_2,…,kolumna_n)] 
AS 
SELECT wyrażenie_select 
Przy  modyfikacji  widoku  należy  podad  nazwę  modyfikowanego  widoku,  nazwę  jednej  lub  wielu 
kolumn, z których składad się ma nowy widok oraz wyrażenie 
SELECT
, które ma definiowad 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ąd.  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  zastosowad  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ąd. Przykładowo:
DROP TABLE Osoba
W celu usunięcia istniejącego widoku należy zastosowad 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ąd. Przykładowo:
DROP VIEW Osoba PracaDyplomowa
Przykładowe rozwiązanie
Dodawanie użytkowników  
Dodawad  użytkowników  można  na  dwa  sposoby.  Pierwszy  sposób  polega  na  tworzeniu 
użytkowników  z poziomu języka T-SQL używając  procedur składowanych. Drugi sposób polega na 
tworeiu użytkowników z poziomu SQL Server Menagement Studio. Poniżej pokażemy w jaki sposób 
tworzyd użytkowników na dwa sposoby. 
Sposób 1. Poziom języka T-SQL
W  pierwszym  kroku  związanym  z  zarządzaniem  użytkownikami  jest  stworzenie  użytkowników 
serwera i bazy danych. W tym celu stosujemy systemowej procedury składowanej 
sp_addlogin
. W
naszym przykładzie stwórzmy dwóch użytkowników
Konsultant1
i
Konsultant2
.
EXEC sp_addlogin Konsultant1 
EXEC sp_addlogin Konsultant2 
Następnie  pozwalamy  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:
 
Włodzimierz Dąbrowski, Przemysław Kowalczuk, Konrad Markowski
Moduł 5
ITA-101 Bazy Danych
Język SQL DCL, DDL
Strona 8/20
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 
dodajemy  ich  do  roli.  W  tym  celu  używamy  systemowej  procedury  składowanej 
sp_addrolemember
. W naszym przykładzie mamy:
EXEC sp_addrolemember Obsluga, Konsultant 1 
EXEC sp_addrolemember Obsluga, Konsultant 2 
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
.
Poziom SQL Server Maenagement Studio
W  celu  stworzenia  użytkowników  poziomu  SQL  Server  Menagemant  Studio  w  pierwszym  kroku 
należy  dodad użytkowników  do  serwera  bazodanowego. W  tym celu  w obrębie 
Object Explore
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 Rysunku 2. 
Rys. 2 Zakładanie konta na SQL Server 2008 użytkownikowi
W analogiczny sposób dodajemy Konsulatanta2. W następnym etapie dodajemy użytkowników do 
bazy  danych.  W  tym  celu  w  obrębie 
Object Explore
wybieramy
Datatabase
a następnie bazę
danych do której chcemy przypisad 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  Rysunku  3.  W  analogiczny  sposób  postępujemy  z 
Konsultantem2. 
 
Włodzimierz Dąbrowski, Przemysław Kowalczuk, Konrad Markowski
Moduł 5
ITA-101 Bazy Danych
Język SQL DCL, DDL
Strona 9/20
Rys. 3 Dodawanie użytkownika do bazy danych
Na  koocu  należy  zmienid  jeszcze  tylko  ustawienia  serwera  tak  żeby  nowi  użytkownicy  mogli  się 
zalogowad.  W  tym  celu  klikamy  prawym  przyciskiem  myszy  na  instancji  serwera  i  wybieramy 
Propertis
a następnie
Security
i zaznaczamy opcję
SQL Server and Windows Authentication
mode
co pokazano na Rysunku 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  uprawnieo 
dostępu  do  tabel  możemy  uczynid  to  na  dwa  sposoby.  Pierwszy  sposób  polega  na  nadawaniu 
uprawnieo  użytkownikom  użytkowników  z  poziomu  języka  T-SQL.  Drugi  sposób  polega  na 
nadawaniu  uprawnieo  użytkownikom  z  poziomu  SQL  Server  Menagement  Studio.  Poniżej 
pokażemy w jaki sposób tworzyd użytkowników na dwa sposoby. 
Poziom języka T-SQL
W celu przyznania prawa dostępu dla użytkownika stosujemy instrukcje
GRANT
. Przykładowo dla
stworzonego użytkownika
Konsultant1
nadajmy mu prawo przeglądania i wstawiania danych do
tabeli Klienci. Zatem:
GRANT SELECT, INSERT,  
ON Klienci 
TO Konsultant1 
W podobny sposób możemy nadad prawo przeglądania I wstawiania danych do tabeli
Klienci
dla
roli
Obsluga
. Zatem:
GRANT SELECT, INSERT,  
ON Klienci 
TO Obsluga 
W analogiczny sposób odmawiamy (
DENY
) lub usuwamy (
REVOKE
) użytkownikowi lub roli
uprawnienia.
 
Włodzimierz Dąbrowski, Przemysław Kowalczuk, Konrad Markowski
Moduł 5
ITA-101 Bazy Danych
Język SQL DCL, DDL
Strona 10/20
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 zapytanie
SELECT
w postaci tabeli klientów. W naszym
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 przydzielid prawo wykonywania procedury składowanej dla roli
Obsluga
. Zatem będziemy miel:
GRANT EXECUTE On proc_klienci 
TO Obsluga 
Poziom SQL Server Maenagement Studio
W  celu  nadania  uprawnieo  użytkownikowi  dostępu  do  obiektu  typu  tabela  należy  w  obrębie 
zakładki 
Tables
wybrad tabelę
Uzytkownik
a następnie klikamy prawym przyciskiem myszy
wybieramy
Properties
. W obrębie
Proberties
wybieramy zakładkę
Permissions
. Mając
zdefiniowanych użytkowników na poziomie bazy danych
Obsluga
nadajemy mu odpowiednie
uprawnienia.  W  naszym  przypadku  dajemy  mu  możliwośd  przeglądania  tabeli  co  pokazano  na 
Rysunku 5. 
Rys. 5 Nadanie uprawnieo na tabeli Uzytkownik
Operacje na obiektach 
Załóżmy, że chcemy stworzyd 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 
 
) 
 
Włodzimierz Dąbrowski, Przemysław Kowalczuk, Konrad Markowski
Moduł 5
ITA-101 Bazy Danych
Język SQL DCL, DDL
Strona 11/20
Jeżeli  użytkownikowi  Konsultant2  chcemy  nadad  prawo  przeglądania  danych  o  klientach  możemy 
dla tabeli Klienci stworzyd widok z udostępnionymi danym a użytkownikowi dad prawo dostępu do 
widoku.  Zatem  tworzymy  widok  jak  poniżej  i  nadajemy  prawo  dostępu  do  widoku  w  analogiczny 
sposób jak pokazano to 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  dodad  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  zmodyfikowad  widok  Klienci_Obsluga  w  taki  sposób  żeby 
Konsultant2 widział adres strony internetowej klienta. Zatem: 
ALTER VIEW Klienci_Obsluga (Firma, Nazwisko, Imię, Telefon, www) 
AS 
SELECT Imię, Nazwisko, Firma, Telefon, www FROM Klienc 
Załóżmy,  że  chcemy  usunąd  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śd 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  łaocucha 
praw własności. Łaocuch 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 łaocuch, aparat bazy danych sprawdza uprawnienia inaczej, 
niż w przypadku indywidualnego dostępu do obiektów. 
Tworzenie użytkowników oraz nadawanie im uprawnieo może odbywad się na dwa sposoby. 
Sposób  pierwszy  wymaga  znajomości  języka  T-SQL.  Drugi  sposób  polega  odbywa  się  z 
poziomu SQL Server Menagement Studio.  
W  przypadku  tworzenia  użytkowników  z  poziomu  języka  T-SQL  musimy  znad  odpowiednie 
procedury składowane, które należy w tym celu użyd. W procedurach składowanych zapisane 
są ustawienia, które zostaną wprowadzone podczas ich użycia.  
Możemy  nadawad  uprawnienia  do  różnych  obiektów  w  bazie  danych.  W  rozwiązaniu 
problemu  pokazano  w  jaki  sposób  nadawad  uprawnienia  do  obiektu  typu  tabela.  W 
analogiczny  sposób  możemy  nadawad  uprawnienia  do  obiekty  typu:  widok,  funkcja  czy 
procedura składowana. 
Użytkowników  możemy  grupowad  według  nadanych  im  uprawnieo.  Wówczas  możemy 
założyd  role  i  pogrupowad  użytkowników  według  ról  jakie  pełną  w  bazie  danych. 
Konsekwencją tego jest to, że możemy przypisad dostęp do obiektów bazy danych nie tylko 
dla pojedynczego użytkownika ale również dla grupy użytkowników zapisanych w roli. 
Język T-SQL DDL
Poleceniem
CREATE
możemy utworzyd 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:
 
Włodzimierz Dąbrowski, Przemysław Kowalczuk, Konrad Markowski
Moduł 5
ITA-101 Bazy Danych
Język SQL DCL, DDL
Strona 12/20
CREATE PROCEDURE nazwa_procedury  
AS 
SELECT wyrażenie 
Polecenie
ALTER
modyfikuje również obiekt programowalny w postaci procedury
składowanej. W tym celu wywołujemy instrukcje
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 wyrażenie 
W celu usunięcia istniejącej procedury składowanej należy zastosowad polecenie
DROP
PROCEDURE
. Jego uproszczoną składnię częściową pokazano poniżej:
DROP PROCEDURE nazwa_widoku
Tworzenie,  modyfikacja  i  usuwanie  może  odbywad  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, deklarujesz (nie tworzysz) za pomocą polecenia
DECLARE
.
Do istniejące tabeli możemy zawsze dodad 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 podad przykłady obiektów baz danych, do których można zastosowad 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 nadawad prawa dostępu do bazy danych oraz w jaki sposób zarządzad 
rolami.  Następnie  pokazuje  jak  prosto  można  nadawad  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 zorganizowad nadawanie uprawnieo 
do bazy danych oraz do obiektów bazy danych od strony administracyjnej. Przybliża 
również  jak  należy  planowad  politykę  bezpieczeostwa  serwera  i  bazy  danych 
 
Włodzimierz Dąbrowski, Przemysław Kowalczuk, Konrad Markowski
Moduł 5
ITA-101 Bazy Danych
Język SQL DCL, DDL
Strona 13/20
poprzez nadawanie odpowiednich uprawnieo. Pozycja szczególnie polecana osoba 
chcącym poszerzyd wiedzę o tych elementach administracji serwera. 
3. Deren Bieniek, Randy Dyess, Mike Hotek, Javier Loria, Adam Machanic, Antonio Soto, Adolfo
Wiernik, SQL Server 2005 Implemantacja i obsuga, APN Promise, Warsyawa 2006
W książce przedstawiono obie składowe języka T-SQL: DCL i DDL. Pokazano w jaki 
sposób  tworzyd  użytkowników,  nadawad  im  uprawnienia  oraz  jak  tworzyd 
podstawowe obiekty bazy danych, jak je modyfikowad i usuwad. Książka szczególnie 
polecana ze względu na dużą zawartośd dwiczeo laboratoryjnych. 
4. Dusan Petkovic, Microsoft SQL Server 2008: A Beginner's Guide, McGraw-Hill, 2008
Pozycja napisana w sposób prosty. 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  definiowad  użytkowników  i  nadawad  im  uprawnienia  oraz  jak  tworzyd, 
modyfikowad i usuwad podstawowe obiekty bazy. Pozycja szczególnie polecana dla 
osób początkujących.  
 
Włodzimierz Dąbrowski, Przemysław Kowalczuk, Konrad Markowski
Moduł 5
ITA-101 Bazy Danych
Język SQL DCL, DDL
Strona 14/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  National  Insurance  zarządzająca  systemem  prac  dyplomowych  na  Twoim  wydziale  planuje 
rozszerzenie systemu na skalę uczelniana. Pierwsze zadanie, jakie przed Tobą stoi, to zdefiniowanie 
nowych użytkowników oraz modyfikacja użytkowników istniejących. 
Zadanie
Tok postępowania
1.  Nawiązywanie 
połączenia z SQL 
Server 2008 
Uruchom maszynę wirtualną BD2008.
—  Jako nazwę użytkownika podaj Administrator. 
—  Jako hasło podaj P@ssw0rd. 
Jeśli  nie  masz  zdefiniowanej  maszyny  wirtualnej  w  MS  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.  Tworzenie 
tabeli 
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 
GO 
 
-- (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
)
3.  Modyfiko 
wanie tabeli 
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 
GO 
Dodaj  do  tabeli  Osoba  kolumnę  przechowującą  informacje  o  numerze 
telefonu. Zaznacz i uruchom (F5) poniższy fragment kodu. 
-- (4) Dodanie kolumny Telefon 
ALTER TABLE Osoba_1 
  ADD Telefon int 
GO 
Dodajmy  ograniczenia  na  kolumnę  indeks.  Zaznacz  i  uruchom  (F5) 
poniższy fragment kodu.  
-- (5) Dodajmy ograniczenie na kolumne Nr_Indeksu 
ALTER TABLE Osoba_1 
 
Włodzimierz Dąbrowski, Przemysław Kowalczuk, Konrad Markowski
Moduł 5
ITA-101 Bazy Danych
Język SQL DCL, DDL
Strona 15/20
  ADD CONSTRAINT CK_Nr_Indeksu CHECK (Nr_Indeksu > 10000) 
GO 
Usuomy ograniczenia nałożone w poprzednim kroku. Zaznacz i uruchom 
(F5) poniższy fragment kodu. 
-- (6) Usuwamy ograniczenie na kolumnie Nr_Indeksu 
ALTER TABLE Osoba_1 
  DROP CONSTRAINT CK_Nr_Indeksu 
GO 
Usuomy  kolumnę  Telefon.  Zaznacz  i  uruchom  (F5)  poniższy  fragment 
kodu. 
-- (7) Usuwamy kolumne Telefon 
ALTER TABLE Osoba_1 
  DROP COLUMN Telefon 
GO 
4.  Usunięcie 
tabeli 
Usuniemy  tabelę  Osoba.  Mając  otwarty  skrypt  ddl.sql  zaznacz  i 
uruchom (F5) poniższy fragment kodu. 
-- (8) Usuwamy tabele Osoba 
  DROP TABLE Osoba_1 
GO 
Problem 2 (czas realizacji 30 min)
W  wyniku  rozszerzenia  systemu  zarządzania  pracami  dyplomowymi  na  skalę  uczelni  kolejne 
zadanie jakie przed tobą stoi, to nowo zdefiniowanym użytkownikom przydzielenie odpowiednich 
praw dostępu do obiektów w Twojej bazie danych.  
Zadanie
Tok postępowania
1.  Nawiązywanie 
połączenia z SQL 
Server 2008 
Uruchom maszynę wirtualną BD2008.
—  Jako nazwę użytkownika podaj Administrator. 
—  Jako hasło podaj P@ssw0rd. 
Jeśli  nie  masz  zdefiniowanej  maszyny  wirtualnej  w  MS  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.  Dodawanie 
użytkowników do 
bazy danych 
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. 2. 
-- (1) Ustawiamy PraceDyplomowe jako baze robocza  
USE PraceDyplomowe 
GO 
 
-- (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 
 
Włodzimierz Dąbrowski, Przemysław Kowalczuk, Konrad Markowski
Moduł 5
ITA-101 Bazy Danych
Język SQL DCL, DDL
Strona 16/20
  EXEC sp_addrole Dziekanat 
  EXEC sp_addrolemember Dziekanat, Sekretariat1 
  EXEC sp_addrolemember Dziekanat, Sekretariat2 
GO 
Rys. 2 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ś  uzyskad  połączenie  do  drugiej  instancji  serwera 
co pokazano na Rys. 3. 
Rys. 3 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. 4. 
-- (1) Ustawmy PraceDyplomowe jako baze robocza 
USE PraceDyplomowe 
GO 
-- (2) sprawdzamy, czy mamy uprawnienia do wykonania 
-- polecenia SELECT na tabeli Osoba 
SELECT * FROM Osoba 
GO 
 
Włodzimierz Dąbrowski, Przemysław Kowalczuk, Konrad Markowski
Moduł 5
ITA-101 Bazy Danych
Język SQL DCL, DDL
Strona 17/20
Pamiętaj,  że  powyższy  fragment  kodu  zawarty  w  skrypcie  dcl_2.sql 
wykonujemy z zalogowanym użytkownikiem Sekretatiat1 
Rys. 4 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 
uprawnieo  do  wykonywania  poleceo,  tym  bardziej  nie  możemy  ich 
nadawad. 
Spróbujmy  nadad  uprawnienia  innemu  użytkownikowi  będąc 
zalogowani jako Sekretariat1. Zaznacz i uruchom (F5) poniższy fragment 
kodu. 
-- (3) Spróbujmy nadać uprawnienia innemu użytkownikowi 
GRANT SELECT ON Osoba TO Sekretariat2 
GO 
Podjąłeś
nieudaną
próbę
nadania
innemu
użytkownikowi
(Sekretariat2) uprawnieo 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 
GO 
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. 5. 
 
Włodzimierz Dąbrowski, Przemysław Kowalczuk, Konrad Markowski
Moduł 5
ITA-101 Bazy Danych
Język SQL DCL, DDL
Strona 18/20
Rys. 5 Sprawdzenie uprawnien do wykonania polecenia SELECT
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 
GO 
I  tym  razem  nie  udaje  się  nadad  praw  innemu  użytkownikowi.  Czyli 
nadanie uprawnieo do wykonywania polecenia nie jest równoznaczne 
z umożliwieniem nadawania uprawnieo innym użytkownikom. 
4.  Cofnięcie 
uprawnieo 
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 
GO 
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 
GO 
Po cofnięciu uprawnieo do wykonania polecenia SELECT uruchomienie 
tego fragmentu skryptu zwraca informację o błędzie. 
5.  Odbiór 
uprawnieo 
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 
GO 
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 
 
Włodzimierz Dąbrowski, Przemysław Kowalczuk, Konrad Markowski
Moduł 5
ITA-101 Bazy Danych
Język SQL DCL, DDL
Strona 19/20
SELECT * FROM Osoba 
GO 
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 
GO 
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 
GO 
Tym  razem  okaże  się,  że  nie  możemy  wykonad  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.  Przekazywanie 
uprawnieo 
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
GO
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
GO
 
Włodzimierz Dąbrowski, Przemysław Kowalczuk, Konrad Markowski
Moduł 5
ITA-101 Bazy Danych
Język SQL DCL, DDL
Strona 20/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ęśd  najprawdopodobniej 
zostanie  zmodyfikowanych,  częśd  stworzonych,  a  częśd  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 uprawnieo do obiektów bazy danych.