[英]Creating a database remotely using C#
我试图通过使用Visual Studio 2008远程连接到SQL Server Express来创建数据库。我使用SQL身份验证登录到SQL Server。 我可以使用以下命令通过SQL Server Management Studio Express远程进行此操作:
CREATE DATABASE dbname ON(NAME ='dbname_dat',FILENAME ='C:\\ folder \\ dbname.mdf')LOG ON(NAME ='dbname_log',FILENAME ='C:\\ folder \\ dbname.ldf')
但是,当我在代码中使用同一行时,出现以下错误:
CREATE DATABASE权限在数据库“ master”中被拒绝。
错误号为262,类号为14。我的连接字符串为:
服务器=服务器名称;数据库=主服务器; trusted_connection =是;池=假;
有人可以帮忙吗?
好吧,错误消息告诉您什么地方不对,不是吗? 您用来通过C#登录的用户没有足够的权限执行CREATE语句。
您似乎使用其他用户通过SQL Server Management Studio登录,而不是通过C#登录。 您是否通过Windows身份验证和C#中的SQL Server身份验证登录到SQL Server? 还是在Management Studio中您选择了另一个数据库来执行sql语句? 检查该脚本使用的数据库的组合框。
这太明显了,但是请检查您对服务器的权限。 您是系统管理员还是dbcreator?
另外,请检查您的用户凭据。 您的连接字符串说“ trusted_connection=yes
但是然后您说您正在使用SQL Server身份验证登录。 您是哪个,还是应该使用?
尝试将连接字符串修改为与此类似的内容(请注意用户和密码设置):
tmpConn.ConnectionString = "SERVER = " + DBParam.ServerName + "; DATABASE = master; User ID = sa; Pwd = sa";
sa帐户将有权执行此命令。
我建议您不要将凭据传递给数据库。 如果这是一个网站,则可能由于多种原因而发生:
有关设置集成安全性或切换到固定SQL Server帐户的详细说明,请参阅MSDN上有关如何使用Windows集成安全性访问SQL Server的文章。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.