我从 SQL Server 中删除了一个数据库,但事实证明我的登录名被设置为使用删除的数据库作为其默认值。我可以通过使用连接对话框中的“选项”按钮并选择“主”作为要连接的数据库来连接到 SQL Server Management Studio。但是,每当我尝试在对象资源管理器中执行任何操作时,它都会尝试使用我的默认数据库进行连接并失败。
有谁知道如何在不使用对象资源管理器的情况下设置我的默认数据库?
我从 SQL Server 中删除了一个数据库,但事实证明我的登录名被设置为使用删除的数据库作为其默认值。我可以通过使用连接对话框中的“选项”按钮并选择“主”作为要连接的数据库来连接到 SQL Server Management Studio。但是,每当我尝试在对象资源管理器中执行任何操作时,它都会尝试使用我的默认数据库进行连接并失败。
有谁知道如何在不使用对象资源管理器的情况下设置我的默认数据库?
您可以做的是使用 sp_defaultdb 系统存储过程设置您的默认数据库。像您一样登录,然后单击“新建查询”按钮。之后只需运行 sp_defaultdb 命令,如下所示:
Exec sp_defaultdb @loginame='login', @defdb='master'
sp_defaultdb(将在 Microsoft SQL Server 的未来版本中删除)的替代方案可能是ALTER LOGIN
:
ALTER LOGIN [my_user_name] WITH DEFAULT_DATABASE = [new_default_database]
注意:用户名和数据库名不带引号(与sp_defaultdb
解决方案不同)。如果名称有特殊字符,则需要括号(最常见的例子是域用户,domain\username
没有括号也不能工作):
ALTER LOGIN me WITH DEFAULT_DATABASE = my_database
但
ALTER LOGIN [EVILCORP\j.smith28] WITH DEFAULT_DATABASE = [prod\v-45]
要以 GUI 方式执行此操作,您需要编辑您的登录名。它的属性之一是用于该登录的默认数据库。您可以在 Security 节点下的 Logins 节点下找到登录列表。然后选择您的登录名并右键单击并选择属性。更改默认数据库,您的生活会更美好!
请注意,具有系统管理员权限的人需要能够登录才能执行此操作或运行上一篇文章中的查询。
感谢这篇文章,我找到了一个更简单的答案:
打开 Sql Server 管理工作室
转到对象资源管理器 -> 安全 -> 登录
右键单击登录并选择属性
并在属性窗口中更改默认数据库,然后单击确定。
如果您无权更改默认数据库,则可以在查询顶部手动选择不同的数据库...
USE [SomeOtherDb]
SELECT 'I am now using a different DB'
只要您有权访问其他数据库,就可以使用
我也更喜欢ALTER LOGIN
Command 作为接受的答案并在此处描述
但对于 GUI 爱好者
看书累了!!!看看下面
如果您无法登录 SQL Server:
sqlcmd –E -S InstanceName –d master
参考: https: //support.microsoft.com/en-us/kb/307864
这可能会也可能不会完全回答这个问题,但是当我将帐户更改为拥有一个创建为“默认数据库”的新数据库时,我遇到了这个问题(和问题)。然后我删除了该数据库并想从头开始测试我的创建脚本。我注销了 SSMS 并打算重新登录,但被拒绝 - 无法登录到默认数据库是错误。哦!
我所做的是,在 SSMS 的登录对话框中,转到选项、连接属性,然后master
在“连接到数据库”组合框中键入。单击连接。让我进去。从那里你可以运行命令:
ALTER LOGIN [DOMAIN\useracct] WITH DEFAULT_DATABASE=[master]
GO
如果您使用 Windows 身份验证,并且您不知道通过用户名和密码以用户身份登录的密码,您可以这样做:在 SSMS 的登录屏幕上单击右下角的选项,然后转到连接属性选项卡. 然后,您可以手动输入您有权访问的另一个数据库的名称,在它显示的位置,这将允许您连接。然后按照其他建议更改默认数据库