sql-server - 如何检测我是否有CREATE TABLE权限?

标签 sql-server permissions

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

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

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

最佳答案

为什么不先创建表,如果失败,就不再继续?

也就是说,您还可以使用以下函数HAS_PERMS_BY_NAME:

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

更多信息请参见:

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

关于sql-server - 如何检测我是否有CREATE TABLE权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5748591/

相关文章:

SQL:指定列名引用的表

sql - 在 SQL 更新语句中使用 IIF

android - 蓝牙权限丢失错误,而我不需要蓝牙

Java Mail API - "Do not Forward"权限设置

asp.net - 底层提供者在开放 Entity Framework 上失败

sql - 在 SQL Server 中对数据进行版本控制,以便用户可以对数据进行一定的削减

c# - 在 SQL Server 表中序列化 DataSet 的最快方法

c - 在Linux C程序中写入自己的可执行文件,错误 "Text file busy"

linux - 指定音量后轨道停止工作

MacOS - 请求音频/相机许可 - 显示错误的应用程序标题?