SQL Server 2012 örneğimde "okuma" kullanıcısı kurmak istiyorum. Ona tüm tablolardan ve görünümlerden veri alır, ancak güncellemek veya eklemek (yani bir şey okumak ve hiçbir şey yazmak) için herhangi bir saklı yordam veya işlev veya doğrudan SQL deyimi yürütme hakkına izin vermek istiyorum.
Bunu, her bir işleve veya saklı yordama özel olarak ad vermeden ayarlayabilir, ancak daha ziyade herhangi bir işlev veya saklı yordamda yürütme izni verebilir, sadece tabloları değiştirme hakkını ortadan kaldırabilir miyim?
Bunun yerine SQL Server 2008 çalıştırırsam bir şey değişecek mi?
Açıklamalar ve eklemeler:
- Saklı yordam veri değiştirirse, kullanıcı bir hata iletisi almalıdır (ya değişikliği reddetme ya da saklı yordama erişimi tamamen reddetme).
- Potansiyel bir çözüm izinleri reddetmeyi içeriyorsa, reddetmek yerine belirli izinler veremez miyim?
- Bir reddetme, veritabanındaki tüm tablolara, görünümlere vb. (Şimdi ve gelecekte mevcuttur) tek bir ifadeyle uygulanabilir mi?
GRANT
vermek, izinleri DENY
reddetmek ve REVOKE
bir GRANT
veya kaldırmak için 3 izin değişkeni vardır DENY
. Bir GRANT
veya DENY
kullanıcı olmadan , örneğin saklı yordama erişerek izinleri devralabilir.
DENY DELETE, INSERT, UPDATE
Bir veritabanı veya şema kullanıyorsanız, bunun yalnızca tabloları ve görünümleri etkileyeceğine inanıyorum.