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

Joe*_*ite 6 sql-server permissions

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

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

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

Ste*_*yne 11

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

也就是说,您还可以使用以下功能HAS_PERMS_BY_NAME:

SELECT HAS_PERMS_BY_NAME(db_name(), 'DATABASE', 'CREATE TABLE');
Run Code Online (Sandbox Code Playgroud)

更多信息:

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