sql-server-wan-ortamindan-baglanma-ve-kullanici-rolleri

Fırat Boyan 18 Kasım 2015 5
sql-server-wan-ortamindan-baglanma-ve-kullanici-rolleri

Bu makalemde Windows Server 2012 R2 üzerinde çalışan SQL Server’ımıza WAN üzerinden yani şirket dışında başka bir ortamdan nasıl bağlanabileceğinizi ve kullanıcı oluşturarak oluşturulan kullanıcıya rol ve yetki tanımlamasının nasıl yapılacağından bahsediyor olacğaım.

SQL Server 2014 Configuration‘ı çalıştırıyorum.

sql server dışarıdan bağlanma

SQL Server 2014 Configuration, SQL Server’ın Servislerinin bulunduğu yönetim arabirimidir. Configuration penceresinden SQL Server Network Configuration altında bulunan Protocols for MSSQLSERVER‘ı tıklıyorum.

sql server dışarıdan bağlanma

Sağ tarafta bulunan TCP/IP, Disabled durumda. Sağ tıklayarak Enable duruma getiriyorum.

sql server dışarıdan bağlanma

Karşımıza, yapılan değişikliklerin servisin yeniden başlatıldığında gerçeli olacağını belirten bir uyarı penceresi çıkıyor. OK tıklıyorum.

sql server dışarıdan bağlanma

TCP/IP Protocol Enabled durumda. Buradan sağ tıklayarak Properties‘i tıklıyorum.

sql server dışarıdan bağlanma

TCP/IP Properties penceresinden Network Interface Card‘a Server IP’sini giriyor, Apply butonuna basıyorum.

sql server dışarıdan bağlanma

Aynı şekilde, yapılan değişikliklerin servisin yeniden başlatıldığında gerçeli olacağını belirten bir uyarı penceresi çıkıyor. OK tıklıyorum.

sql server dışarıdan bağlanma

Windows + R tuş kombinasyonu ile Run‘ı çalıştırıp services.mcs ile Servislerin bulunduğu alanı açıyorum. Burada SQL SERVER(MSSQLSERVER) servisini restart ediyorum.

sql server dışarıdan bağlanma

Servis Restart oluyor….

sql server dışarıdan bağlanma

Görüldüğü gibi, Server’ımın DNS kaydı mevcut. Ben kurulum yaparken Named Instance seçtiğim ve ilk kurulum yapan da ben olduğum için SQL Server, Server’ımın adını atadı. Buraya Server IP’si ile de bağlanabilirim. Bu kısım özellikle makale sonunda Windows Server 2012 R2 üzerinde çalışan SQL Server’a uzaktan bağlantı yaparken DNS isim çözümlemesi yaptığı için hem Server IP’si, hem de Hostname ile bağlantı kurabiliyor olacağıma değineceğim

sql server dışarıdan bağlanma

Sıra geldi WAN üzerinden yani şirket dışında başka bir ortamdan SQL Server’a bağlantı kuracak olan Kullanıcıyı oluşturup rollerini atamaya..

Kullanıcı adını tanımladıktan sonra, dışarıdan bağlantı kurabilmesi için SQL Server authentication‘ı seçmek durumundayız. Burada oluşturacağımız kullanıcı için bir Şifre belirletikden sonra OK butonuna basmamız yeterli olacaktır.

sql server dışarıdan bağlanma

Oluşturduğumuz kullanıcının Security>Logins altında yer aldığını görebiliyoruz. Bundan sonraki adımlarda, Kullanıcıya ihtiyaç dahilinde Rollerin ve İzinlerin atanması işlemini uygulamak için kullancı üzerinde sağ tıklayıp Properties tıklayın.

sql server dışarıdan bağlanma

Ben yetkilendiremeden de bahsetmek istediğim için oluşturdum FIRAT kullanıcısı üzerinde sağ tıklayıp Properties‘e tıklıyorum.

sql server dışarıdan bağlanma

1) Server Rolleri:
Login Properties penceresinde Server Roles alanında kullanıcının veritabanı sunucusunun çalışması ile ilgili işlemlerin yürütülmesi ile ilgili rollerin atandığı alandır. Daha başka bir ifade ile; oluşturulan kullanıcının atandığı veritabandaki yürüteceği yönetimsel rolleri, yani Server Rollerini belirler.
Bir Sql Server hesabı varsayılan olarak hiçbir yönetici yetkisi olmadan oluşturulur. Bu role de public rolü denir. Oluşturduğunuz bir kullanıcıya yönetici yetkisi vermek istiyorsanız, gerekli yetkiyi bu alandan vermeniz gerekiyor.
Yönetimsel Rollere bir göz atalım:

bulkadmin(BulkInsertAdministrator):
Toplu ekleme yöneticisi. Toplu Insert işlemlerini yerine getirir.
NOT: Genelde başka bir veri kaynağından ya da Excel’den veri çekme işlemleri için kullanılır.

dbcreator(Database Creators):
Veritabanı oluşturucusu. Veritabanı oluşturulması ve değiştirilmesi işlemlerini yönetir.
NOT: Bu role sahip olan kullanıcı, herhangi bir veritabanı oluşturabilir, silebilir veya düzenleyebilir. Yazılımcılara test amaçlı bu yetki verilebilir.

diskadmin(Disk Administrator):
Disk yöneticisi. Veritabanı dosyalarını yönetir.

processadmin(Process Administrator):
İşlem yöneticisi. SQL Server’daki process’leri kontrol eder.
NOT: Bu role sahip olan kullanıcı, çalışan tüm process’leri görebilir, kill komutu ile istenen process’leri sonlandırabilir.

public(Herkese Kısıtlı Hak) : SQL Server üzerinde standart ayarlarla giriş yapan herkesin atandığı roldür. Bu kural ile tüm kullanıcıların kısıtlı hakları vardır. Daha sonra bu kullanıcılara kural değişikliği yapılarak diğer kurallar atanabilir.

securityadmin(Seurity Administrator):
Güvenlik Yöneticisi. SQL Server login bilgilerini yönetir.
NOT: Bu role sahip olan kullanıcı, SQL Server hesabı oluşturup silebilir. Rol oluşturma yetkisi yoktur.

serveradmin(Server Administrator):
Sunucu yöneticisi. Sunucu temelli ayarlamalardan sorumludur.

setupadmin(Setup Administrator):
Kurulum yöneticisi. SQL Server Raplication’ı kurar.
NOT: Bu role sahip olan kullanıcı, Linked Server oluşturma yetkileri vardır.

sysadmin(System Administrator):
Sistem yöneticisi. Server’daki hemen her işi yapabilir.
NOT: Bu role sahip olan kullanıcı, tüm yönetici yetkilerine sahip olur.

sql server dışarıdan bağlanma

2) Veritabanı Seviyesinde kullanıcı Yetkisinin Yapılandırılması (Database Rolleri):
Sql Server’da kullanıcıya Server Roles verilmesi birçok yetkiyi de beraberinde getirir. Kullanıcıya sadece istenen veri tabanlarında yetki verilmek istendiği zaman Login Properties penceresinde User Mapping alanında, kullanıcının atandığı veritabanına bağlandığında hangi yetkilere(rollere) sahip olacağını, yani Veritabanı Rollerini belirliyoruz. Kullanıcıyı birden fazla veritabanına da atayabilirsiniz ancak ben örnek olarak FIRAT kullanıcısını dukkan isimli veritabanına atadım. Kullanıcım sadece atandığı veritabanı üzerinde, kullanıcı rolleri dahilinde işlem yapabilir.
Veritabanı Kullanıcı rolleri, veritabanına veri eklenmesi,silinmesi,veri okuma,veri yazma,nesne sahipliği,erişim ayarlamaları vb. konularda tanımlı rollerdir ve veritabanı seviyeli işlemler olduklarından,veritabanı kullanıcılarına verilebir.

Veritabanı Kullanıcı Rollerine bir göz atalım:

db_accessadmin: Veritabanı yöneticisi
db_backupoperator: Veritabanı Yedekleme Operatörü
db_datareader: Veritabanı Okuyucusu
db_datawriter: Veritabanı Veri Yazıcısı
db_ddladmin: Veritabanı DDL Yöneticisi
db_denydatareader: Veritabanı engelli veri okuyucu
db_owner: Vertabanı sahibi
db_security: veritabanı güvenlik yöneticisi

sql server dışarıdan bağlanma

3) Server Seviyesinde Kullanıcı Yetkisinin Yapılandırılması:
Login Properties penceresinde Securables alanında kullanıcının SQL Server erişimi ile ilgili tüm güvenlik ayarlarını yapılandırabilirsiniz.

Örneğin, aşağıdaki ekran görüntüsünde de görüldüğü gibi, kullanıcıya sa(System Admin) tarafından  Connect SQL yani SQL Server’a bağlanma yetkisi verilmiş. İhtiyacınıza göre diğer ayarları da buradan yönetebilirsiniz.

sql server dışarıdan bağlanma

Kullanıcımızı oluşturup gerekli rol ve izinleri de atadıktan sonra (Internet bağlantısını VPN ile sağladığınızı varsayarak) Şirket dışından Server Name kısmına Server IP’sini (Server LOCAL IP) yazarak bağlantımızı gerçekleştirebiliriz.

VPN bağlantısı yoksa, Firewall veya Modem üzerinden SQL Server IP’sine NAT(yönlendirme) işleminin de yapılmış olması gerekmektedir. NAT yapıldıktan sonra, Server Name kısmına Firewall veya Router’ınızın dışarıya bakan kısmındaki IP’yi (ISP‘nin sağladığı INTERNET IP) yazmanız gerekmektedir.

sql server dışarıdan bağlanma

Bu noktada şunu da unutmamak gerekiyor; Windows Server 2012 R2 üzerinde çalışan SQL Server’a uzaktan bağlantı yaparken DNS isim çözümlemesi yaptığı için hem Server IP’si, hem de Hostname (bende SRV001) ile bağlanabiliriz.

Windows Server 2012 R2 üzerinde çalışan SQL Server’a başarılı bir şekilde giriş yaptık.

sql server dışarıdan bağlanma

NOT: Ben bu bağlantıyı; (aynı Network’e dahil olduğumuz için test amacıyla) kendi fiziksel bilgisayarımda kurulu olan SQL Server üzerinden, Sanal Ortamda kurduğum ve Windows Server 2012 R2 ortamında çalışan SQL Server’a bağlanarak gerçekleştirdim.

5 Comments »

  1. mm
    Hasan Kaba 18 Kasım 2015 at 20:40 - Reply

    Güzel ve faydalı bir makale olmuş eline sağlık.

  2. mm
    Bülent Gür 19 Kasım 2015 at 18:05 - Reply

    Fırat eline saglık faydalı bir makale olmus

  3. Feyyaz 30 Nisan 2020 at 04:06 - Reply

    Hocam Visual Studio da C# ile yaptığım bir otomasyon programında SQL kullanıyorum.Yukarıda verdiğiniz işlemleri yapmama rağmen aynı modeme bağlı bilgisayarlardan değilde farklı modemlere bağlı bilgisayarlardan internet üzerinden bağlantı kuramadım.SQL Server daki herhangi bir database e farklı modemden giriş yapılabilir mi?Evimdeki bilgisayarımın SQL Serverına iş yerimden girebilir miyim misal?

Yorum Bırak »