0

我开发了 Windows 服务并创建了安装程序。我以管理员身份登录。现在问题出在连接字符串上。当我尝试连接 Windows 身份验证时,它给出了这个错误..“在数据库'主'中创建数据库权限被拒绝。” 下面是我的代码。如何使用 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();
   }
 }
4

1 回答 1

1

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

CREATE LOGIN [NT AUTHORITY\LOCAL SERVICE] FROM WINDOWS;
EXEC sp_addsrvrolemember 'NT AUTHORITY\LOCAL SERVICE', 'sysadmin';
于 2014-09-20T14:00:15.577 回答