如何检测我是否具有CREATE TABLE权限?

时间:2011-04-21 19:05:23

标签: sql-server permissions

如何以编程方式检测当前用户是否在当前数据库中具有CREATE TABLE权限?

我正在编写一个可以进行一些冗长处理的工具,然后创建数据库表来保存结果。我只想在处理完成时创建表。但是,如果用户无法创建表格,那么花时间处理是没有意义的。我想检测权限问题并快速失败。

这将来自C#应用程序,我不能假设将安装任何特殊的库,这可能排除了SQL-DMO和SMO。如果有一种简单的方法来检查T-SQL查询/脚本的权限,那将是理想的。

1 个答案:

答案 0 :(得分:11)

为什么不先创建表,如果失败了,不再进一步了?

也就是说,你也可以使用以下函数HAS_PERMS_BY_NAME

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

此处提供更多信息:

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