2011-04-21 20 views
5

Geçerli kullanıcının geçerli veritabanında CREATE TABLE izinlerine sahip olup olmadığını nasıl programlayabilirim?CREATE TABLE izni alıp almadığımı nasıl anlayabilirim?

Uzun bir işlem yapacak bir araç yazıyorum ve sonuçları kaydetmek için veritabanı tabloları oluşturun. İşlem tamamlanıncaya kadar sadece tabloları oluşturmak istiyorum. Ancak, kullanıcı tabloları oluşturamazsa, harcama için zaman harcaması söz konusu değildir. İzin sorununu tespit etmek ve hızlıca başarısız olmak istiyorum.

Bu bir C# uygulamadan olacaktır ve SQL-DMO ve SMO'yu göz ardı eden herhangi bir özel kitaplığın yükleneceğini varsayamam. Bir T-SQL sorgu/komut dosyasıyla izinleri denetlemenin kolay bir yolu varsa, bu ideal olur.

cevap

9

Neden tabloyu ilk oluşturmuyorsunuz ve bu başarısız olursa, daha fazla gitme? Burada

SELECT HAS_PERMS_BY_NAME(db_name(), 'DATABASE', 'CREATE TABLE'); 

daha fazla bilgiyi:

http://msdn.microsoft.com/en-us/library/ms189802.aspx

+0

+1, bu İZİNLER fonksiyonunun kullanımı daha savunulabilir çözüm olduğunu söyleyen

, ayrıca aşağıdaki işlevi HAS_PERMS_BY_NAME kullanabilirsiniz. –

İlgili konular