创建数据库用户并以编程方式登录

时间:2014-03-25 12:04:29

标签: c# .net sql-server

我觉得我有一些非常基本的错误。我似乎无法使用参数来添加用户。

以下Incorrect syntax near '@x'失败:

var Cmd = new SqlCommand("CREATE LOGIN @x FROM WINDOWS; CREATE USER @x FOR LOGIN @x", SqlConn);
Cmd.Parameters.AddWithValue("@x", user);
Cmd.ExecuteNonQuery();

然而,这有效:

var Cmd = new SqlCommand("CREATE LOGIN @x FROM WINDOWS; CREATE USER @x FOR LOGIN @x", SqlConn);
Cmd.CommandText = Cmd.CommandText.Replace("@x", "[" + user + "]");
Cmd.ExecuteNonQuery();

(用户使用域\用户格式:user = @"mycomputer\myuser";

修改
我可以在右边看到相关的问题,这是重复的。答案说你不能使用CREATE USER的参数。不知道为什么。也许我应该以不同的方式解决我的基本问题?这就是我想要实现的目标:

我在我的数据库中有一个角色,我想添加用户,以便他们可以访问数据库。我希望管理员能够从软件中执行此操作(授予对[domain \ user]的数据库访问权限),而无需他们成为MR SQL并自行运行管理工作室。我该怎么做?