使用C#远程创建数据库

时间:2009-12-15 22:18:38

标签: c# sql-server database

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

  

创建DATABASE dbname ON   (NAME = 'dbname_dat',   FILENAME ='C:\ folder \ dbname.mdf')LOG   ON(NAME ='dbname_log',   FILENAME = 'C:\文件夹\ dbname.ldf')

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

  

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

错误编号为262,类编号为14.我的连接字符串为:

  

服务器=服务器;数据库=主人; trusted_connection =是;池= FALSE;

有人可以帮忙吗?

4 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:2)

这太明显了,但请检查您在服务器上的权限。你是系统管理员还是dbcreator?

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

答案 2 :(得分:1)

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

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

sa帐户有权执行此命令。

答案 3 :(得分:1)

我建议您的凭据不会传递到数据库。如果这是一个网站,这可能由于多种原因而发生:

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

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