2012-06-18 10 views
10

Uygulamamın (C#, ASP.Net) DB'deki verileri ekleyip güncellemesi ve silmesi ve saklı yordamları çalıştırması gerekir. DB şemasını değiştirmemesi gerekiyor - tabloları değiştirmek, oluşturmak veya bırakmak, saklı yordamlarda değişiklik yapmak yok.Bir SQL Server kullanıcısına veri ekleme/güncelleme/silme, ancak şemayı değiştirmeye nasıl izin verilir?

Uygulama kullanıcısına hangi izin kombinasyonunu vermem gerekiyor? Sadece 'select' çalışmaz, çünkü tablolarda veri eklemek/güncellemek/silmek zorundadır.

Belirli bir oturum açma için izinleri ve erişimi nasıl kontrol ederim? Bir giriş için izinleri nasıl girer veya reddederim? Sadece bir veritabanına erişmek için yeni bir kullanıcıya (giriş) izin vermem gerekiyor.

SQL Server 2008 R2'yi SSMS ile birlikte kullanma.

İdeal
GRANT SELECT,UPDATE,INSERT,DELETE ON SCHEMA::dbo TO user; 

olsa da, sen ad hoc DML izin vermeyeceğini: Gerçekten nesne düzeyinde bu denetlemek istiyorsanız

cevap

18

, sen yapabilirsiniz: şema seviyesinde

GRANT SELECT,UPDATE,INSERT,DELETE ON dbo.table TO user; 

Tablolarınıza karşı ve saklı yordamlarla tüm DML'yi denetleyin. Bu durumda sadece prosedür kendisini exec vermek gerekmez ve nesnelere dokunduğu: Benzer şekilde, belirli bir şemada bütün prosedürleri hakkında exec izin vermek istiyorsanız

GRANT EXEC ON dbo.procedure TO user; 

, şunları söyleyebilirsiniz:

GRANT EXEC ON SCHEMA::dbo TO user; 

Saklı yordamınız dinamik SQL oluşturduğunda bir istisnadır. Bu durumlarda, dinamik SQL yürütme bağlamında temel tablolara izinleri uygulamanız gerekebilir veya EXECUTE AS OWNER'u kullanabilirsiniz.

+0

'Güncelle' ve 'silme' izni vermek, kullanıcının tabloları değiştirip bırakmasına izin verir mi? Ayrıca, tabloya değil, bir şemaya izin verebilir miyim? – jprusakova

+1

Hayır, güncelleme ve silme, verilerin kendisinden değil, tablodaki verilere bakın. Bunu her zaman deneyebilirsiniz. Ve evet, şemayu nesne yerine yerine etkileyebildiğiniz bir örnek yayınladım (daha sonra tablo eklediyseniz yardımcı olabilir, kullanıcının * erişemediği bir tablo eklemek istemediğiniz sürece, izinler devralınır. o zaman açıkça o masanın üzerinde inkar etmek gerekir). –

+0

teşekkürler, bu yardımcı olur! – jprusakova

İlgili konular