【问题标题】:Creating a database remotely using C#使用 C# 远程创建数据库
【发布时间】:2009-12-16 06:37:34
【问题描述】:

我正在尝试通过使用 Visual Studio 2008 远程连接到 SQL Server Express 来创建数据库。我使用 SQL 身份验证登录到 SQL Server。我可以通过以下命令使用 SQL Server Management Studio Express 远程执行此操作:

创建数据库 dbname ON (NAME='dbname_dat', FILENAME='C:\folder\dbname.mdf') 日志 ON (NAME='dbname_log', FILENAME='C:\folder\dbname.ldf')

但是,当我在代码中使用同一行时,出现以下错误:

CREATE DATABASE 权限被拒绝 数据库'主'。

错误号是262,类号是14。我的连接字符串是:

server=servername;database=master;trusted_connection=yes;Pooling=false;

谁能帮忙?

【问题讨论】:

    标签: c# sql-server database


    【解决方案1】:

    嗯,错误信息告诉你出了什么问题,不是吗?您用于通过 C# 登录的用户没有足够的权限来执行 CREATE 语句。

    您似乎使用不同的用户通过 SQL Server Management Studio 登录而不是通过 C# 登录。您是否通过 Windows 身份验证和 C# 中的 SQL Server 身份验证登录到 SQL Server?或者也许在 Management Studio 中您选择了一个不同的数据库来执行 sql 语句?检查脚本使用的数据库的组合框。

    【讨论】:

      【解决方案2】:

      这太明显了,但请检查您在服务器上的权限。您是系统管理员还是数据库创建者?

      另外,请检查您的用户凭据。您的连接字符串显示trusted_connection=yes,但随后您说您正在使用 SQL Server 身份验证登录。您正在使用或应该使用哪一种?

      【讨论】:

        【解决方案3】:

        尝试将您的连接字符串修改为类似以下内容的内容(注意用户和密码设置):

        tmpConn.ConnectionString = "SERVER = " + DBParam.ServerName + "; DATABASE = master; User ID = sa; Pwd = sa";

        sa 帐户将有权执行此命令。

        【讨论】:

        • 小事。是的,这就是问题所在。谢谢。我一直在使用 Windows 身份验证,但我的 SQL Server 身份验证代码并非如此。但这就是我们测试的原因。
        【解决方案4】:

        我建议不要将您的凭据传递到数据库。如果这是一个网站,发生这种情况的原因有很多:

        • 您没有开启模拟
        • 您在 IIS 中开启了基本身份验证..

        请参阅 MSDN 上有关 How to Access SQL Server Using Windows Integrated Security 的这篇文章 有关设置集成安全性或切换到固定 SQL Server 帐户的详细说明。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-11-26
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-07-16
          相关资源
          最近更新 更多