如何以编程方式检测当前用户在当前数据库中是否具有 CREATE TABLE 权限?
我正在编写一个工具,它将进行一些冗长的处理,然后创建数据库表来保存结果。我只想在处理运行完成时创建表。但是,如果用户无法创建表,则没有必要花时间进行处理。我想检测权限问题并快速失败。
这将来自 C# 应用程序,我不能假设将安装任何特殊库,这可能排除 SQL-DMO 和 SMO。如果有一种简单的方法可以使用 T-SQL 查询/脚本检查权限,那就太理想了。
最佳答案
为什么不先创建表,如果失败,就不再继续?
也就是说,您还可以使用以下函数HAS_PERMS_BY_NAME
:
SELECT HAS_PERMS_BY_NAME(db_name(), 'DATABASE', 'CREATE TABLE');
更多信息请参见:
关于sql-server - 如何检测我是否有CREATE TABLE权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5748591/