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

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

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

我没有安装管理工作室,因为我想要尽可能少的安装(它主要用于非常基本的测试目的,而不是用于实际工作)。

我还没有安装 Management Studio 而且我也不想安装它。

在安装过程中,我提供了用于连接的用户和密码,但是,看起来事情出了问题,我无法使用该用户登录。

情况:

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

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

基本上此时我有两个选择:

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

    我不想,也没有人保证这次它会起作用并创建一个用户。

  2. 安装管理工作室我不希望它为虚拟机安装庞大的安装。

问题:

是否有任何简单的命令行工具可以访问数据库,只需使用 XP 身份验证即可运行几个语句,而无需使用庞大的管理工作室工具?

解决方案摘要:

  1. 用来sqlcmd -Q "create login ..."运行我需要的sql语句。sqlcmd.exe 已安装“SQL Server 数据库引擎”
  2. 安装过程中我的用户定义不正确,因为 MS SQL 不喜欢我给出的密码,而且它没有就此问题发出警报...

答案1

sqlcmd 将允许您使用 Windows 或 SQL 身份验证对服务器运行命令。如果出现问题并且最终没有 Windows 帐户被授予对服务器的权限,那么您可以在单用户模式下启动 SQL Serve 以获取访问权限并创建新帐户。

答案2

在我的系统(即 SQL 2008(不是 R2))中,sqlcmd.exe 位于“C:\Program Files\Microsoft SQL Server\100\Tools\Binn”。如果您使用的是 R2,路径可能会略有不同。您可以尝试查找“osql.exe”。osql.exe 的工作原理与 sqlcmd 大致相同,但早于 sqlcmd.exe,功能也不那么齐全。在我的系统上,osql.exe 与 sqlcmd.exe 位于同一个 Binn 目录中。

即使我打算远程管理服务器,我也发现在服务器上安装这些工具以及 SQL 服务比不安装它们要容易得多。我已经使用 SQL Server 12 年了。某些事情(如复制)很难通过手动编写 Transact-sql 来完成,因为存储过程调用可能非常复杂,而且您最终需要的一些看似微不足道的实用程序经常会缺失。

相关内容