【问题标题】:Windows service - CREATE DATABASE permission denied in database 'master'Windows 服务 - 数据库“主”中的 CREATE DATABASE 权限被拒绝
【发布时间】:2014-11-14 21:33:19
【问题描述】:

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

【问题讨论】:

  • 你不需要使用cmd.Dispose(),因为你使用了using语句。
  • 好的,谢谢.. 但它不能解决我的问题 :( @SonerGönül

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


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-17
    • 1970-01-01
    • 2023-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多