Forum
Benim yapmak istediğim SQL Server üzerinde Aykut isimli bir kullanıcı açmak ve bu kullanıcının örnek olarak Kitaplar tablosundaki Yetki alanında "S" ibaresi olanları görebilmesini istiyorum.
Yani Select * From Kitaplar dediğinde Sadece Yetki alanı "S" olanlar listelenebilsin. Diğerlerini göremesin.
Merhaba
Bu kullanıcı SQL Query Alanındamı sorgu yapacak yoksa bir programmı yazıyorsunuz?
Query alanında sorgulama yapacak hocam.
Benim yapmak istediğim SQL Server üzerinde Aykut isimli bir kullanıcı açmak ve bu kullanıcının örnek olarak Kitaplar tablosundaki Yetki alanında "S" ibaresi olanları görebilmesini istiyorum.
Yani Select * From Kitaplar dediğinde Sadece Yetki alanı "S" olanlar listelenebilsin. Diğerlerini göremesin.
Create Proc Sp_Proc
AS
Begin
Declare @User varchar(20) = (Select SYSTEM_USER)
if (@User = 'AYKUT')
Begin
Select * from Tbl_Kitaplar where Yetki='S'
End Else Begin
Select * from Tbl_Kitaplar
End
End
Bu procedure çalıştırdıktan sonra kullanıcı sorgu alanına "exec SP_Proc" demesi yeterli
Kolay Gelsin.
Hocam Prosedür olarak yaparsak dogru fakat kullanıcı bizim bilgimiz dışında Query ile Tablo alanında sorgulama yapar ise Yetki alanında S dışındaki kayıtları görmesin istiyorum. Yani kullanıcı prosedür kullanmak yerine kendisi sorgu yazabiliyor. Kullanıcının bir tablodaki alanlara göre Select, Update, View gibi yetkiler atayabiliyoruz ya ben bu atadığımız yetkilerinde daha kısıtlı olmasını sağlamak istiyorum. Çok karışık bi durum gibi duruyor.
SQL Server da kolon bazlı yetkilendirme yapılabilir fakat hem kolon bazlı hem de filtered bir yetki yok. İlgili kullanıcıların tüm tablolara erişmesi yerine o iş gerekli roller tanımlayıp sadece erişmesi gereken tablolara hak verilebilir.