如何在没有Management Studio的情况下将用户添加到Sql Server Express 2008

我已经在虚拟机中安装了SQL Server 2008 R2“SQL Server数据库引擎”,我想通过其他计算机(Linux)的odbc连接到它。

我没有安装pipe理工作室,因为我想尽可能less的安装(这主要是为了非常基本的testing目的而不是真正的工作)。

我没有安装Management Studio,我不想安装它。

在安装过程中,我提供了一个用户和密码连接然而,看起来像东西出了问题,我不能使用此用户login。

情况:

  1. 我已经安装了“数据库引擎”并configuration了TCP连接
  2. 我可以使用isql连接到它,但它报告用户不存在。
  3. 我在事件日志中看到(Windows的)抱怨用户不存在。
  4. 我试图运行导入工具,并设法使用XP用户在同一台​​PC上login,并可以运行简单的查询,但是这个工具不允许我运行一个语句,所以我不能运行CREATE LOGIN user-name WITH PASSWORD='secret'

我如何连接到这个数据库并添加新用户?

基本上我有两个select:

  1. 重新安装数据库,但:

    我不想和没有任何承诺,这一次它会工作,并创build一个用户。

  2. 安装pipe理工作室我不希望它是虚拟机的巨大安装。

题:

是否有任何简单的命令行工具来访问数据库只是为了使用XP身份validation运行几个语句没有一个巨大的pipe理工作室工具?

解决scheme总结

  1. 使用sqlcmd -Q "create login ..."来运行我需要的sql语句。 sqlcmd.exe与“SQL Server数据库引擎”一起安装
  2. 我的用户在安装过程中没有正确定义,因为MS SQL不喜欢我给出的密码,它并没有提醒我这个问题。

sqlcmd将允许您使用Windows或SQL身份validation来针对服务器运行命令。 如果出现问题,并且没有授予服务器权限的Windows帐户,则可以在单用户模式下启动SQL Serve以访问并创build新帐户。

在我的系统上,这是SQL 2008(不是R2),sqlcmd.exe位于“C:\ Program Files \ Microsoft SQL Server \ 100 \ Tools \ Binn”中。 如果你使用R2,它可能是一个稍微不同的path。 你可以尝试寻找“osql.exe”。 osql.exe与sqlcmd大部分工作相同,但是早于sqlcmd.exe,并不像function齐全。 在我的系统上,osql.exe与sqlcmd.exe位于同一个Binn目录中。

即使当我打算远程pipe理服务器时,我发现在服务器上安装这些工具以及SQL服务,比不安装它们要less得多。 而且我已经使用SQL Server 12年了。 某些事情(如复制)通过手动编写Transact-sql非常困难,因为存储过程调用可能非常复杂,并且通常会丢失一些看似微不足道的工具。