Windows服务 - 数据库“master”中的CREATE DATABASE权限被拒绝

时间:2014-09-20 11:34:27

标签: c# sql-server visual-studio-2012 windows-services installshield-2012

我开发了Windows服务并创建了安装程序。我以管理员身份登录。 现在的问题是连接字符串。当我尝试连接Windows身份验证时,它会发出此错误。“在数据库'master'中创建数据库权限被拒绝。”以下是我的代码。如何使用c#代码在客户端系统中设置权限?有没有其他方法可以做到这一点..请帮助,谢谢

using (var conn = new SqlConnection("data source=.\\sqlexpress;integrated security=true"))
 {
  using (var cmd = new SqlCommand("CREATE DATABASE [db_namexx]", conn))
  {
   conn.Open();
   cmd.ExecuteNonQuery();
   cmd.Dispose();
   conn.Close();
   }
 }

1 个答案:

答案 0 :(得分:0)

Windows服务帐户必须是SQL Server sysadmin角色或db_creator服务器角色的成员才能创建数据库。下面是一个示例脚本,您可以根据需要进行调整,也可以将其作为服务安装程序的一部分运行。必须将运行此脚本的帐户设置为sysadmin角色成员。

CREATE LOGIN [NT AUTHORITY\LOCAL SERVICE] FROM WINDOWS;
EXEC sp_addsrvrolemember 'NT AUTHORITY\LOCAL SERVICE', 'sysadmin';
相关问题