You are on page 1of 16

Veri Taban Ynetim Sistemleri 1

Ders 12

SQL Server'da Kullanc Ynetimi

Yrd. Do. Dr. Altan MESUT

Trakya niversitesi
Bilgisayar Mhendislii Blm
Login ve User
SQL Server'da Login nesnesi bir sunucuya giri
iin, User ise sunucu altndaki bir veritabanna
giri iin kullanlr.
ncelikle sunucu zerinde bir login oluturup,
daha sonra hangi veritaban zerinde o login'e
balanma hakk vereceksek, ilgili veritaban
zerinde o login iin bir user olutururuz.
Bir login ismi ayn veritaban zerinde birden fazla
kullanc ile ilikilendirilemez (farkl veritabanlar
zerinde kullanlabilir).
Windows kullanclar da login'e balanabilir.
SQL Server Management Studio zerinden de Login, Kullanc, Rol, ema yaratma ve
yetki verme ilemleri yaplabilir. Ama sunuda T-SQL kodlar ile yaplmas gsterilecektir.
LOGIN Yaratma
SQL Server Authentication iin:
CREATE LOGIN loginAd
WITH PASSWORD = 'ifresi' MUST_CHANGE
Windows Authentication iin:
CREATE LOGIN [domainAd\loginAd]
FROM WINDOWS
Opsiyonel olarak varsaylan veritaban ad ve
varsaylan dil seilebilir:
DEFAULT_DATABASE = yeniDB
DEFAULT_LANGUAGE = Turkish

3
USER Yaratma
Genel Kullanm:
CREATE USER kullancAd
FOR LOGIN loginAd
Kullanc yaratlrken varsaylan ema atanabilir:
CREATE LOGIN AltanMESUT
WITH PASSWORD = '8fdKJl3$nlNv3049js';
USE yeniDB;
CREATE USER Altan FOR LOGIN AltanMESUT
WITH DEFAULT_SCHEMA = yeniSema;
Altan kullancsnn yarataca nesneler bir ema
belirtilmez ise yeniSema altnda yer alacaktr. 4
ema (Schema)
ema, tablo ve prosedr gibi veritaban
nesnelerini barndran yapdr. Kullanc ve rol gibi
yaplar ise ema iinde yer almazlar.
emann sahibi bir kullanc veya rol olabilir.
Seimlik olarak kullanlabilen AUTHORIZATION ile
emann sahibi olacak kullanc belirlenir. Eer
kullanlmazsa emay yaratan kullanc sahibi olur:
CREATE SCHEMA Alinin AUTHORIZATION Ali
Tm sabit veritaban rollerinin kendilerine ait
farkl bir emas vardr.
5
Roller
Rol, birok yetkinin bir araya getirilmesi ile oluan yetki
gruplarna verilen isimdir.
Kiilere tek tek yetkiler verildiinde, sonradan yetkilerin
deitirilmesi gerekirse, yine tek tek o kiilere
deiikliin uygulanmasn gerektirecektir.
Oysa ki kiilere bir rol verilirse, bu roln yetkileri
deitirilince o role sahip olan tm kiilerin yetkileri
deitirilmi olur.
SQL Server zerindeki yetkili kullanclar iin sabit
sunucu rolleri, veritabanna eriim yetkisi olan
kullanclar iin ise sabit veritaban rolleri mevcuttur.

6
Sabit Sunucu Rolleri
D dosyalardan alnan verileri tablolara
yerletirebilme (BULK INSERT)
VT oluturma ve deitirme
VT yedek (backup) dosyalarn ynetme
Sunucu ilemlerini kontrol etme (eriimleri
sonlandrabilir)
Genel kullanclar iin en yetkisiz rol
Login, Rol yaratma gibi gvenlik ileri
Sunucu temelli ayarlamalar (veritabann ap,
kapatabilme yetkisi)
Birbirine bal sunucularn kurulumu ve idaresi
(SQL Server Replication)
Tm ileri yapabilen en yetkili rol (sa kullancs bu
roln yesidir)

7
Sabit Veritaban Rolleri
Kullanc yaratr, yetki verir
Yedek (backup) alr
Tm tablolardaki verileri sorgulayabilir
Tm tablolar zerinde deiiklik (DML
ilemleri) yapabilir
Veritabannda DDL ilemleri yapabilir
Hibir tabloyu sorgulayamaz
Hibir tablo zerinde deiiklik yapamaz
Tm yaplandrma ve bakm ilemlerini
yapar
Rol yelikleri ve yetkilendirme ilemlerini
yapar

8
Rol Yaratma
Geeli veritabannda bir rol yaratmak iin:
CREATE ROLE rol_ad
[AUTHORIZATION kullanc_ad]
Seimlik olarak kullanlabilen AUTHORIZATION
ile roln sahibi olacak kullanc belirlenir. Eer
kullanlmazsa rol yaratan kullanc sahibi olur.
Rol yaratacak olan kullancda CREATE
ROLE yetkisi veya db_securityadmin sabit
veritaban rolne yelik olmas gereklidir.

9
Role Kullanc Ekleme
Rollere kullanclar ye yapmak veya yelikten
karmak iin ALTER ROLE komutu kullanlr.
CREATE ROLE yeniRol;
ALTER ROLE yeniRol ADD MEMBER Altan;
ALTER ROLE yeniRol DROP MEMBER Altan;
Rollere ye olarak baka bir kullanc tanml
veritaban rol de atanabilir (sabit veritaban
rolleri ye olarak atanamaz).
ALTER ROLE public ADD MEMBER yeniRol;
Yukardaki kod ile public rolnn sahip olduu tm yetkilere yeniRol de sahip
olur. Dolaysyla yeniRol'e ye olan herkes te public yetkilerine sahip olur. 10
Yetkiler
Kullanc veya Rol yaratldktan sonra veritaban
zerinde neleri yapp neleri yapamayacaklarn
belirlemek iin yetkiler verilir.
Bu ilemler iin kullanlan aadaki 3 komut DCL
(Data Control Language) komutlar olarak bilinir:
GRANT komutu ile yetki verilir (kullanc veya rol
yelerinin yapabilecekleri belirlenir)
DENY komutu ile kstlama tanmlanr (kullanc veya
rol yelerinin yapamayacaklar belirlenir)
REVOKE komutu ile verilen yetki ve tanmlanan
kstlamalar geri alnr.

11
GRANT ile yetki verme
Genel kullanm aadaki gibidir:
GRANT <yetki> ON <nesne> TO <user, login, rol>
"yeniRol" rolne tablo yaratma yetkisi verilmesi:
GRANT CREATE TABLE TO yeniRol
Nesneler zerinde yetki verilirken ON kullanlr.
Dersler tablosu zerinde deiiklik yapabilme
(DML ilemleri) yetkisinin Ali, Ahmet ve Mehmet
kullanclarna verilmesi:
GRANT INSERT, DELETE, UPDATE
ON Dersler TO Ali, Ahmet, Mehmet
Eer bu 3 kiiye db_datawriter sabit roln verdiyseniz,
zaten tm tablolar zerinde DML ilemleri yapabilirler. 12
DENY ile kstlama tanmlama
Kullancnn belirli bir role atanmas ile zerine
ald yetkilerden bazlarn engellemek iin
DENY ile kstlama getirebiliriz.
Kullanm GRANT ile benzerdir:
DENY CREATE TABLE TO Hasan, Ali
Ali ve Mehmet'in Notlar tablosunu
sorgulamasn engellemek iin:
DENY SELECT ON Notlar TO Ali, Mehmet

13
REVOKE ile yetkiyi geri alma
Hem GRANT ile verilen yetkilerin, hem de
DENY ile tanmlanan kstlamalarn geri
alnmas iin kullanlr.
Kullanm olarak yine GRANT ve DENY'a benzer,
fakat TO yerine FROM kullanlr:
REVOKE CREATE TABLE FROM yeniRol
REVOKE SELECT ON Hocalar FROM Altan

14
Management Studio zerinde kullanc ilemleri

Ayn anda birden fazla


login ile balant alabilir
Login ve Sunucu Rolleri sunucunun Security dm altndadr
Kullanclar, emalar ve Veritaban Rolleri ise ilgili veritabannn
Security dm altndadr
Her VT'de olan dbo (database owner) kullancs sa (system
administrator) login ismi ile balanr.
Kullanc, Rol, ema ve Login yaratma ilemleri ilgili dmlerde
sa tklama ve "New " seimi ile alan pencerede gerekli
alanlar doldurma yolu ile yaplabilir. 15
Kullanc zellikleri zerinden yetki verme

General: varsaylan Search + All objects of the types + Tables


ema deitirilir kullanlrsa Securables listesinde tablolar
Owned Schemas: listelenir. Seilen tabloda ilgili yetki iin
ema sahiplikleri
aada Grant/Deny tklanr. "With Grant"
ayarlanr
Membership: Rol seili ise ald yetkiyi bakasna da verebilir.
yellikleri ayarlanr

16

You might also like