SQL Server Create New User

SQL New Login türleri 1.SQL Authenticantion  2.Windows Authenticantion  SQL Server üzerinde kullanıcı – login açmak için SS Management Studio – Security – Logins üzerinde sağ klik “New Login” diyorurz. Açılan pencerede Login Name kısmından Login’imize bir isim veriyoruz. Windows Authentication ile domain kullanıcısına SQL Server için yetki verilebilir. Search kısmından yetki verilmek istenen kullanıcı seçilebilir. SQL Server Authentication seçildiğinde kullanıcı adını yazabilirsiniz. SQL Server’ın yönettiği hesaplar olduğu için Windows hesaplarından farklı olacaktır.   SQL Server Authentication seçildiği zaman karşımıza aşağıdaki seçenekler gelior bunların ne işe yaradığına beraber bakalım. “Enforce password policy” – Domaindeki veya Windows işletim sisteminde password policy kuralları geçerli olur. “Enforce password expiration” – Domaindeki veya Windows işletim sisteminde şifre geçerlilik süresi bu seçenek ile geçerli olur. Aşağıdaki Script ile hangi kullanıcının password’un ne kadar süre sonra yenilenmesi gerektiğini bize göstermektedir. -- SQL oturum açma parolasının süresi ne zaman dolacak? SELECT SL.name AS LoginName ,LOGINPROPERTY (SL.name, 'PasswordLastSetTime') AS […]

SQL Server Create New User

SQL New Login türleri

1.SQL Authenticantion 

2.Windows Authenticantion 

SQL Server üzerinde kullanıcı – login açmak için SS Management StudioSecurityLogins üzerinde sağ klik “New Login” diyorurz.

Açılan pencerede Login Name kısmından Login’imize bir isim veriyoruz.

Windows Authentication ile domain kullanıcısına SQL Server için yetki verilebilir. Search kısmından yetki verilmek istenen kullanıcı seçilebilir.

SQL Server Authentication seçildiğinde kullanıcı adını yazabilirsiniz. SQL Server’ın yönettiği hesaplar olduğu için Windows hesaplarından farklı olacaktır.

 

SQL Server Authentication seçildiği zaman karşımıza aşağıdaki seçenekler gelior bunların ne işe yaradığına beraber bakalım.

Enforce password policy” – Domaindeki veya Windows işletim sisteminde password policy kuralları geçerli olur.

Enforce password expiration” – Domaindeki veya Windows işletim sisteminde şifre geçerlilik süresi bu seçenek ile geçerli olur.

Aşağıdaki Script ile hangi kullanıcının password’un ne kadar süre sonra yenilenmesi gerektiğini bize göstermektedir.

-- SQL oturum açma parolasının süresi ne zaman dolacak? 
SELECT SL.name AS LoginName 
      ,LOGINPROPERTY (SL.name, 'PasswordLastSetTime') AS PasswordLastSetTime 
      ,LOGINPROPERTY (SL.name, 'DaysUntilExpiration') AS DaysUntilExpiration 
      ,DATEADD(dd, CONVERT(int, LOGINPROPERTY (SL.name, 'DaysUntilExpiration')) 
                 , CONVERT(datetime, LOGINPROPERTY (SL.name, 'PasswordLastSetTime'))) AS PasswordExpiration 
      ,SL.is_policy_checked AS IsPolicyChecked 
      ,LOGINPROPERTY (SL.name, 'IsExpired') AS IsExpired 
      ,LOGINPROPERTY (SL.name, 'IsMustChange') AS IsMustChange 
      ,LOGINPROPERTY (SL.name, 'IsLocked') AS IsLocked 
      ,LOGINPROPERTY (SL.name, 'LockoutTime') AS LockoutTime 
      ,LOGINPROPERTY (SL.name, 'BadPasswordCount') AS BadPasswordCount 
      ,LOGINPROPERTY (SL.name, 'BadPasswordTime') AS BadPasswordTime 
      ,LOGINPROPERTY (SL.name, 'HistoryLength') AS HistoryLength 
FROM sys.sql_logins AS SL 
WHERE is_expiration_checked = 1 
ORDER BY LOGINPROPERTY (SL.name, 'PasswordLastSetTime') DESC

 

User must change password at next login” – Kullanıcı bir sonraki oturumunda şifresini değiştirmek zorunda kalır. SSMS ile bu şifre değiştirebilir.

Default Database” – SSMS bağlanıldığında kullanıcı bazlı çalışılacak olan veritabanı otomatik olarak gelir.

Default Language” – SSMS üzerindeki dil ayarları, format ve hata mesajları istenen dilde bu seçenek ile ayarlanabilir.

Enforce password policy ve pasword expiration seçeneklerinin SQL logini için seçilmesi, basit şifrelerin kullanılmasının önüne geçeceği gibi, uzun süre değiştirilmeyen şifreler içinde tedbir olacaktır.

bunların kullanılması aslında güvenlik açısından hem DBO hem de kullanıcı için önemlidir.

T-SQL kodu ile SQL login aşağıdaki gibi oluşturulmaktadır.

GO

CREATE
LOGIN [furkank] WITH
PASSWORD=N’Guclu_bir_sifre’
MUST_CHANGE,


DEFAULT_DATABASE=[Database],


DEFAULT_LANGUAGE=[Türkçe],

CHECK_EXPIRATION=ON,


CHECK_POLICY=ON
GO

Problem oluşturabilecek durumlar:

  • Password policy seçili olan bir SQL hesabında, şifre denemesi aynı Windows hesabında olduğu gibi geçerlidir. Yanlış girilen şifrelerden dolayı SQL hesabı kilitlenebilir. SQL hesabının kilidini açmak için aşağdaki T-SQL kodu çalıştırılır.
    ALTER
    LOGIN furkank WITH
    PASSWORD
    =
    ‘yeni_sifre’
    UNLOCK;
    
  • Şifre değiştirilmek istenmiyor ise, aşağıdaki komutlar ile çalıştırılır.
ALTER
LOGIN furkank WITH
CHECK_POLICY
=
OFF;

ALTER
LOGIN furkank WITH
CHECK_POLICY
=
ON;
  • Bir SQL hesabını devre dışı bırakmak veya tekrar aktifleştirmek için aşağıdaki T-SQL kodu kullanılır.

Hesabı devre dışı bırakır.

ALTER
LOGIN furkank DISABLE;

Hesabı aktifleştirir.

ALTER
LOGIN furkank ENABLE;
  • Bir SQL hesabını silince, bu hesabın tüm ayarları kaybolur, tekrar bu hesabı oluşturduğunuzda tüm tanımları yeniden yapmanız gerekmektedir. Bu sebeple, hesabın SQL Server’a erişimimi kapatarak, hesabı silmeden kullanıcının SQL Server’a erişimini engelleyebilirsiniz.
DENY
CONNECT
SQL
TO furkank;

Bu ayarları kullanıcının Properties sayfasındaki Status sekmesinden de yapabilirsiniz.

  • SQL Server da oturumları yönetebilirsiniz.

Şu anda devre dışı bırakılmış olan SQL Server Oturumları:

select * from [sys].[sql_logins] WHERE  [is_disabled]  =  1 ;

Parola politikasına uymayan SQL Server Oturumları:

select * from [sys].[sql_logins] WHERE [is_policy_checked] =  0 ;

Kullanıcı hesaplarının güvenlik ile alakalı kısımlarından bahsettik. Login – Properties’in diğer sekmeleri olan Server Roles, User Mapping ve Securables bölümleri kullanıcının SQL Server içindeki erişim izinleri ile alakalıdır.

 

Select * from Sys.Sql_logins  ve Select * from  Sys.syslogins  Tüm kullanıcıları gösterir hatta bu komutla Createdate, updatedate alanlarınıda görebiliriz.

 

 

Arkadaşlar burada SQL Authenticantion ile Windows Authenticantion kullanıcısı ile ilgili bilgileri mutlaka bilmemiz gerekmektedir.

Ayrıca AlwaysOn olan sistemlerde kullanılacak işlemler değişiklik gösteriyor.

Burada kısacası bu durumlardan bahsedeceğim.

AlwaysOn olan yapılarda yedekleme mantığı bulunmakta bu sebepten dolayı bu sistemlerde yeni bir kullanıcı oluşturacağımız zaman ya da var olan kullanıcıya yetki ekleme veya çıkarma işlemlerde kesinlikle Primary olan makinemizde olduğumuzdan emin olmalıyız.

AlwaysOn olan makinelerde oluşturduğumuz kullanıcıyı şu komut ile ”sp_help_revlogin ‘oluşturulan kullanıcı ’ CREATE Script ‘ini alıp

Secondary olan makinelerde çalıştırmalıyız. Bu sayede AlwaysOn olan sistemlerde yedek makinelere geçiş yapıldığı zaman yani Secondary olan makineler Primary olduğu zaman kullanıcıların bağlantı problemi ve yetkilerinde herhangi bir problem olmaması içinCREATE Script” ile oluşturulması gerekmektedir.

 

Şimdi gelelim SQL Authenticantion ile Windows Authenticantion bilinmesi gerekenlere

  • SQL Server Authenticantion ile oluşturulan kullanıcılar Active Directory ile herhangi bir bağlantısı olmadan kullanabileceğiniz kullanıcı türüdür.
  • SQL Server Authentication’ı dışarıdan erişecek ve domain yapınızın dışından erişecek kullanıcılar için açabilirsiniz.
  • SQL hesapları, SQL Server’ın içinden yönetilir, Windows hesapları ile bir bağlantısı yoktur.
  • SQL Server’daki kullanıcıların hesaplarına Logins denmektedir. Her bir login’e ayrı yetkiler verilebilir, erişebileceği veri tabanları belirlenebilir.
  • SQL Server’da güvenlik seviyesi iki katmandan oluşur Server ve Veritabanı seviyesi. Login hesabı ilk önce server seviyesi oluşturulur, daha sonra ilgili veri tabanına mapped denilen ataması yapılır ve veri tabanına erişimi sağlanmış olur.

Burada Active Directory dediğimiz kısa bir bilgi olarak şu şekilde açıklayabilirim.

Kullandığınız bilgisayarınız Domain’e yani bir ağ ortamını alınarak kullanıcıların yönetilmesidir.

Windows Authenticantion kullanarak oluşturulan kullanıcılar Active Directory ile parola kontrolü yapan login çeşitidir.

  • Burada kullanıcı kendisi ID ve Password belirleyemez ve Domaine alınmış olan bilgisayarlar üzerinden Windows oturum açtığı ID ve Password ‘u ile giriş yapmaktadır.
  • Sadece Windows hesaplarından açılan oturumları kabul eder.
  • Unutmayalım Sadece kullanmış olduğu bilgisayardan değil Active Directory ‘in kullanmış olduğu Ağ ve Domaine alınmış tüm bilgisayarlardan giriş sağlayabilir.

Benim anlatacaklarım buraya kadardı eksik veya anlamadığınız yer olursa lütfen yorumlarda bunları dile getirin.

Bilgi Paylaştıkça çoğalır.

Benzer Yazılar

SQL SERVER RIGHT-LEFT PARTITION

SQL Server 5 gün önce

SQL Server’da partitioning, büyük veritabanı tablolarını daha yönetilebilir ve performanslı hale getirmek amacıyla kullanılan bir tekniktir. Bu teknik, tablonun verilerini fiziksel olarak değil, mantıksal olarak parçalara ayırır. Veriler, belirli bir partition function ve partition scheme kullanılarak farklı bölümlere yönlendirilir. Partitioning, özellikle büyük veri kümeleriyle çalışan veri tabanlarında sorgu performansını artırır ve veri yönetimini kolaylaştırır. Partition Function ve Partition Scheme nedir? Partition Function: Verilerin hangi kriterlere göre bölüneceğini belirler. Örneğin, bir tarih aralığına göre verileri ayırmak. Partition Scheme: Verilerin hangi filegroup’larda depolanacağını belirler.   Örnek olarak Range LEFT ve Range RIGHT olmak üzere iki ayrı tabloda partition nasıl yapılır sizlere göstereceğim. İlk olarak Range LEFT olan partition yapısından başlayacağım. Öncelikle Veri tabanıma yeni filegroup ve file ekliyorum Şimdi sıra FUNCTION ve SCHEME oluşturmakta ben tablomu yıllık olarak partition yaptım sizler ihtiyaçlarınız doğrultusunda aylık,günlük vs yapabilirsiniz. LEFT partition dediğimiz olay vermiş olduğunuz tarih aralığına eşit bir veri geldiğinde bu veriyi solundaki partition […]

Veritabanı Recovery Pending Durumu ve Düzeltme Seçenekleri

SQL Server 2 hafta önce

İçindekilerVeritabanı Recovery Pending Durumu Nedir?Veritabanı Neden Recover Pending Duruma Düşer?Recovery Pending Durumu Nasıl Çözülür?SonuçKaynaklarVeritabanı Recovery Pending Durumu Nedir? SQL Server’da veritabanları bazı nedenlere bağlı olarak “Recovery Pending” (Kurtarma Bekleme)  moduna geçebilir. Veritabanın düzgün bir şekilde kapatılmaması, eksik veya bozuk log dosyaları, disk depolama sorunları, sistemde yaşanan anormal şekilde çökmeler veya MS SQL Server’daki hatalar bu duruma sebep olabilir. Recovery durumu, aslında veritabanını tekrar kullanılabilir hale getirmek için bir kurtarma işlemi yürüttüğünü ifade eder ve üç aşamadan oluşur; Analysis (Analiz): Transaction log incelemesi yapılması ve işlemlerin tamamlanma (Commit) durumunun kontrol edilmesi, Redo (Yeniden İşleme): Tamamlanmış (Commit) ancak henüz diske yazılamamış olan işlemlerin yeniden işlenmesi, Undo (Geri Alma): Başlamış (Begin) ancak tamamlanmamış (Commit) işlemlerin  geri alınmasıdır.   Veritabanı Neden Recover Pending Duruma Düşer? SQL Server Restart Süreci SQL Server servisi restart edildiğinde üzerinde bulunan tüm veritabanları tutarlılığın sağlanması için otomatik olarak recovery moduna girer ve redo/undo işlemleri sürecince devam eder. Ani Sistem […]

SQL Server DMV ve DMF – 6

SQL Server 2 hafta önce

Bu yazımızda DMV ve DMF Serimizin 6.sına devam edeceğiz. Bir önceki seride Memory’ye ilişkin DMV ve DMF’leri ele almıştık. Bu yazıda Memory konusunda devam edeceğiz. SQL server’da Memory kavramı en önemli kavramlardan biridir. Özellikle tüm transaction işlemlerinin önce Buffer sonra disk üzerinden devam ettiğini düşünürsek buffer’ın oynadığı kritik rolü daha iyi anlayabiliriz. Bu yazıda Memory’nin durumunu ve monitör edilmesine bakacağız. Özellikle Performans sorunlarında memory konusunda sorun yaşandığı durumda nasıl okumak gerektiği önemli rol oynamaktadır. Hangi database’de, hangi tablo’da sorun yaşandığına ilişkin bilgilere bu paylaşım sonrasında görebileceğiz. SQL Server’ın Memory kullanım durumunu incelediğimde; select physical_memory_in_use_kb/1048576.0 AS ‘physical_memory_in_use (GB)’, locked_page_allocations_kb/1048576.0 AS ‘locked_page_allocations (GB)’, virtual_address_space_committed_kb/1048576.0 AS ‘virtual_address_space_committed (GB)’, available_commit_limit_kb/1048576.0 AS ‘available_commit_limit (GB)’, page_fault_count as ‘page_fault_count’ from  sys.dm_os_process_memory; Görsel – 1   Physical_memory_in_use: Kullanımda olan Fiziksel Memory miktarını gösterir. locked_page_allocations: Memory’de lock’lanmış olan Page’lerin miktarını belirtir. virtual_address_space_contained: SQL Server VAS(Virtual Adress Space) için ayrılan miktarı belirtir. available_commit_limit: SQL Server tarafından kullanılabilecek Memory Miktarını gösterir. […]

1 Yorum

Yorum Yaz

Rastgele