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

本文关键字:编程 方式 登录 用户 数据库 一个 创建 | 更新日期: 2023-09-27 17:52:55

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

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格式:user = @"mycomputer'myuser";)

编辑
通过右边的相关问题,我可以看出这是一个复制品。答案是不能为CREATE USER使用参数。不知道为什么。也许我应该用另一种方式来解决我的基础问题?这是我想要达到的目标:

我的数据库中有一个角色,我想添加用户以便他们可以访问数据库。我希望管理员能够做到这一点,从软件(给数据库访问[域'用户]),而不需要他们是MR SQL和运行管理工作室自己。我怎么做呢?

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

数据操作语言不支持数据定义语言,支持

SqlCommand.Parameters。在这种情况下,似乎需要使用动态SQL

数据定义语言

    ALTER Statements CREATE Statements
  • 禁用触发器
  • DROP语句
  • 启用触发器
  • 截断表
  • 更新统计信息

数据操作语言

  • 选择……从…在哪里…
  • 插入到…值…
  • 更新……集……在哪里…
  • delete from…在哪里…