如何以编程方式检测当前用户是否在当前数据库中具有CREATE TABLE权限?
我正在编写一个可以进行一些冗长处理的工具,然后创建数据库表来保存结果。我只想在处理完成时创建表。但是,如果用户无法创建表格,那么花时间处理是没有意义的。我想检测权限问题并快速失败。
这将来自C#应用程序,我不能假设将安装任何特殊的库,这可能排除了SQL-DMO和SMO。如果有一种简单的方法来检查T-SQL查询/脚本的权限,那将是理想的。
答案 0 :(得分:11)
为什么不先创建表,如果失败了,不再进一步了?
也就是说,你也可以使用以下函数HAS_PERMS_BY_NAME
:
SELECT HAS_PERMS_BY_NAME(db_name(), 'DATABASE', 'CREATE TABLE');
此处提供更多信息: