2011-04-21 26 views
5

如何以編程方式檢測當前用戶是否在當前數據庫中具有CREATE TABLE權限?如何檢測我是否具有CREATE TABLE權限?

我正在寫一個工具,將做一些冗長的處理,然後創建數據庫表來保存結果。如果處理運行完成,我只想創建表。但是如果用戶無法創建表格,那麼花時間處理就沒有意義了。我想檢測許可問題並快速失敗。

這將來自C#應用程序,我不能假設將安裝任何特殊的庫,這可能會排除SQL-DMO和SMO。如果有一種簡單的方法來檢查T-SQL查詢/腳本的權限,那將是理想的。

回答

9

爲什麼不先創建表,如果失敗了,不要再繼續了嗎?

這就是說,你也可以用下面的函數HAS_PERMS_BY_NAME

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

點擊此處瞭解詳情:

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

+0

+1,這比使用許可功能的更可行的解決方案。 – 2011-04-21 19:19:40

相關問題