sql-server - SQL Server 2008 - 删除默认用户后添加 Windows 帐户

标签 sql-server sql-server-2008 authentication

这相当令人尴尬,但我不小心从 SQL Server 2008 用户列表中删除了我的 Windows 帐户,而且我一辈子都不知道如何重新添加自己,因为我没有登录权限。

服务器正在我的计算机上运行,​​唯一有权访问的其他 Windows 用户是 IUSR、NETWORK SERVICE 和 SYSTEM。除了重新安装之外我还能做些什么吗?

最佳答案

我最近还从本地开发 2008 服务器中删除了我的 Windows 帐户。我能够使用 SQL Server 的单用户模式重新创建登录并将其添加到 sysadmin 角色。只需几分钟,我不必向任何人承认我的可怕错误。

来自 MSDN:

Starting SQL Server in single-user mode enables any member of the computer's local Administrators group to connect to the instance of SQL Server as a member of the sysadmin fixed server role.

以下是我恢复 self 的方法:

  1. 退出 SSMS
  2. 停止任何 SQL 相关服务。我不得不停止 Reporting Services。其他 SQL 服务(例如 SQL 代理)也将耗尽您一个宝贵的连接。
  3. 停止 SQL 服务
  4. 使用额外参数-m启动SQL服务。这将使 SQL 进入单用户模式。这意味着 SQL 将只接受一个连接。
  5. 使用sqlcmd通过-E可信连接选项连接到您的服务器。如果您是本地管理员,SQL 将接受您担任 sysadmin 角色。
  6. 在交互式 session 中,创建您的登录名并添加到 sysadmins 角色。

    USE master
    GO
    CREATE LOGIN [domain\username] FROM WINDOWS WITH DEFAULT_DATABASE=[Master]
    GO
    EXEC sp_addsrvrolemember @loginame=N'domain\username', @rolename=N'sysadmin'
    GO
    
  7. 停止 SQL 服务,删除 -m 参数并重新启动该服务。您现在应该能够返回 SSMS 并继续正常使用服务器。

如果您收到消息:

Login failed for user 'domain\username'. Reason: Server is in single user mode. Only one administrator can connect at this time.

然后有一些东西正在使用您的单个连接。您需要找到该服务或连接并停止它,然后才能登录。检查 SQL 代理、SQL 报告服务、SQL 分析服务等。

关于sql-server - SQL Server 2008 - 删除默认用户后添加 Windows 帐户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1528538/

相关文章:

sql-server - 如何选择 X 随机行,同时保证 Y 某些特定行出现在结果中?

authentication - RabbitMQ - ACCESS_REFUSED - 登录被拒绝

authentication - 在我的 SAAS 应用程序中对外部 ADFS 用户进行身份验证

sql - 不等于运算符不工作

sql - 查找在逗号分隔值内包含相同值的行

sql - TSQL - 根据查找表在表中插入值

sql-server-2008 - 如何 - 使用 View 将 sqoop 导出到 sql server

sql-server-2008 - 查询以获取SQL Server 2008数据库中所有表的名称

sql-server - Team Foundation Server - 应用程序层到数据层 : Authentication, 模拟和授权

sql - 基于当前行值的聚合函数