Sepetiniz

Linked Server’a yeni bir login tanımlamak

Daha önce Oracle’a bağlanacak bir linked server tanımlama işlemine “SQL Server’dan Oracle’a bağlanacak bir Linked Server tanımlamak” isimli makalemde değinmiştim. Şimdi ise tanımlamış olduğumuz bu linked server’a yeni bir SQL Login’i yetkilendirme işlemini anlatacağım.

 

 

Örneğin deneme isimli bir linked server tanımlamış olalım. Tanımlama esnasında da denemeUser’a linked server’ı kullanma yetkisi verdiğimizi düşünelim. denemeUser’ın sahibi denemeUser uygulamayı kullanan login olduğu için bu login’in şifresini başkasına vermek istemeyecektir. Ve bu yüzden linked server’ı kullanma yetkisi olan yeni bir login isteyebilir.

Böyle bir durumda Login oluşturmakla ilgili makalemde anlattığım gibi login’i oluşturuyoruz ve tanımladığımız linked server’a SSMS üzerinden Server Objects->Linked Servers altından ulaşıyoruz ve sağ tıklayıp properties diyoruz.

 

Açılan sekmede sol taraftan security tab’ına geliyoruz ve Local Login kısmında yetkilendirmek istediğimiz login’i seçiyoruz. Daha sonra remote user kısmına oracle tarafında yetkilendirilmiş şifreyi, Remote Password kısmına da oracle tarafındaki kullanıcının şifresini giriyoruz. Ok’e tıkladığınızda size bir hata verebilir. Bunun sebebi genellikle sizin kullandığınız login’in sysadmin bile olsanız bu linked server’ı kullanma yetkisinin olmamasıdır. Test etmek için kendi kullandığınız login’i de aynı şekilde ekleyip ok’e tıkladıktan sonra linked server’a sağ tıklayıp test connection diyebilirsiniz.

 

Önemli bir nokta olarak For a login not defined in the list above, connections will: kısmının altındaki seçeneklerde her zaman Be made using the login’s current security context’i seçmelisiniz. Bu şekilde hedefte yetkili olmayan hiçbir lokal login bu linked server’ı kullanamayacaktır. Bu durum özellikle SQL Server’dan SQL Server’a linked server tanımlandığında çok önem kazanacak. Bir sonraki makalemde de bunu anlatıyor olacağım.

 

Loginlere kendi şifrelerini değiştirebilme yetkisi vermek

Bazen kullanıcıların şifrelerini değiştirebilme yetkisine ihtiyaçları oluyor.

Normalde tek bir kullanıcı için bu yetkiyi aşağıdaki şekilde verebiliyoruz.

GRANT ALTER ON LOGIN:: testUser to testUser

 Ama bazen instance üzerindeki tüm loginler için aynı işlemi yapmak isteyebiliriz. Aşağıdaki sorgu yardımıyla bu işlemi yapacak script demetini hazırlayabiliriz.

select 'GRANT ALTER ON LOGIN:: '+s.name+' to '+s.name from master..syslogins s 
where name not like '%mydomain%' AND name not like 'NT%' AND name not like '%#%' 
AND name not in ('sa') order by s.[name] asc

Aşağıdaki script yardımıyla da uygulamacıya kendi şifresini değiştirebileceğini iletebilirsiniz.

ALTER LOGIN [test] WITH PASSWORD='12345' OLD_PASSWORD='1234'