Bazen kullanıcılar linked server kurulu olan bir sistemde bir tabloya select çektiklerinde aşağıdaki hata ile karşılaşırlar. Sadece linked server için şart değil herhangi bir kullanıcı ilede bu sorunu yaşayabiliriz.
Msg 229, Level 14, State 5, Line 1
The SELECT permission was denied on the object ‘Tablo_Adı, database ‘Veritabanı_Adı’, schema ‘Şema_Adı’.

Bu sorun select sorgusu çektiğimizde view’in refarans aldığı tablo üzerinde kullanıcının yetkisi olmamasıdır. Bunun için linked server’ın bağlı olduğu sunucu üzerinde ilgili kullanıcıya bu tablo bazında yetki verilmesi lazım. Hangi tablo üzerinden yetkilendirme için hata mesajındaki belirtilen tabloya yetki veriyorum.
Bunun için kullanıcının bağlandığı linked server’ın bağlı olduğu sunucuda hatada belirtilen tabloya yetkinin verilmesi lazım.
Hatada belirtilen database’e girilir ilgili hatada belirtilen tablo bulunur. Tabloya sağ tıklayıp properties dedikten sonra permissions kısmından search kısmından ilgili kullanıcı seçilir.

Bu şekilde yetki verdikten sonra linked server’ın olduğu sunucuda aynı view’e select çektiğimde sorgumun çalıştığını gözlemliyorum.

Bunun benzeri birden fazla örnek olabilir kullanıcı herhangi bir select çektiğinde hata mesajında ilgili yer gözükür belirtilen yere yetki verilmesi lazım.
Böyle yapılması aslında view’in gereksiz bir şekilde oluşturulduğunu göstermektedir ilerleyen makalelerde bu olayda tabloya yetki vermeden view’e select çekip sonuç almasını yapmış olacağız.İlgili makale
Burada söyle bir şey ortaya çıkar eğer kullanıcıya view’in select çektiği tabloya yetki verilirse view’in bir anlamı kalmaz. Eğer tablo kendi veritabanı altında ise bir sorun yaşamaz. Farklı veritabanı altında ise tablo yukarıdaki gibi yetki verilmesi lazım. Bunun önüne geçmek için yetki verilen database ve tablo altında ilgili view oluşturulup ilgili tablodan verilerin öyle çekilmesi lazım tabi burada tablo schema ve view schema ownerlarının aynı olması gerekmektedir. Yada yukarıda verilen linkteki db_chaning yapısının aktif edilmesi gerekmektedir.
Başka bir makalede görüşmek dileğiyle..
“Sizin hepinizin yaratılmanız da yeniden diriltilmeniz de sadece bir tek kişinin yaratılması ve diriltilmesi gibidir; Allah her şeyi işitir, her şeyi görür.”Lokman-28