我开发了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();
}
}
答案 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';