在用户的默认数据库脱机后,如何重新获得对MS SQL Server的访问权限?

GMa*_*cci 4 sql-server offline login

匆忙行事......

在为备份离线数据库的过程中我丢失了连接,我唯一的用户详细信息被设置为使用我刚刚离线的master数据库(谢天谢地不是数据库)作为默认数据库...问题为你可以看到.

在查看堆栈溢出时,我无法找到解决问题的方法.

经过一番挖掘,我记得命令行工具sqlcmd.

GMa*_*cci 8

闲暇时悔改:

那问题的解决方案非常简单:

  • 打开一个命令行(Start->Run->cmd然后点击Enter)
  • 在命令行中键入以下内容(在需要时替换正确的值)
    • sqlcmd -S myserver\sqlexpress -d master -U myusername -P mypassword 它启动与之后指定的数据库的命令行连接 -d
    • 注意:确保开关类型如上述作为异常MS实际上大小写困扰,因此-s/-S,-d/-D,-u/-U-p/-P互换.
  • 一旦建立了与数据库的连接,窗口将显示类似于的连接提示:登录sqlcmd提示符
  • 获得正确的提示后,在以下位置键入以下内容:
    • alter login myusernamehere with default_database = master 设置用户要控制的默认数据库
    • 在下一行输入go并按enter...这应该是您的用户设置为使用master数据库作为其连接的默认数据库.它应该出现在屏幕上看起来像这样:更改用户的默认数据库
  • 现在,您可以正常连接MS SQL Server Management Studio,并获得可用于数据库管理任务的可爱图形界面.
  • 执行您的管理任务,并在需要/看到合适时将数据库重新联机
  • 通过将上一个命令中的数据库名称更改为刚刚重新联机的数据库名称,将用户的默认数据库设置回刚刚重新联机的数据库,如下所示: 将用户的默认数据库恢复到以前的数据库

这应该是你设定的.我知道对于大多数人来说这是不太可能出现的情况,但如果发生在您身上,希望这对恢复您的正常访问并使数据库重新联机有一定用处.


小智 5

另一个选项是登录 SSMS 时单击“选项”按钮。在那里,您可以指定要连接到的数据库。因此,只要您有权访问其他数据库之一(例如 master),您就应该能够连接。