【问题标题】:How can I detect whether I have CREATE TABLE permission?如何检测我是否有 CREATE TABLE 权限?
【发布时间】:2011-08-10 13:17:02
【问题描述】:

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

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

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

【问题讨论】:

    标签: sql-server permissions


    【解决方案1】:

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

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

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

    更多信息在这里:

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

    【讨论】:

    • +1,这是一个比使用 PERMISSIONS 函数更可靠的解决方案。
    猜你喜欢
    • 1970-01-01
    • 2019-06-26
    • 2021-03-02
    • 1970-01-01
    • 1970-01-01
    • 2013-12-09
    • 2015-11-27
    • 2019-06-26
    • 1970-01-01
    相关资源
    最近更新 更多