SQL SERVER 2008 登录失败(SQL和windows都没有对应的权限)

      昨天在测试一些权限今天早上来就发现SQL SERVER 登录不上去,报错为: 用户登录失败:消息 18456,级别 14,状态 1,服务器 XXX,第 1 行 .  用户 'XXX' 登陆失败。个人服务和代理都是自动启动的,因此问题不在这了,因为是本地服务,也没有多个账户,测试的时候Sa也被本身禁用了。有的用户就是部分库的只读权限,怎么办呢? sql

      方法就是:把 sql 启动到单用户模式,而后用 sqlcmd -A 登陆,前提是你须要有电脑的管理员权限。网上有不少方法是同样的,可是对于单用户模式的说明都不太详细,至少对于像我这种小白来说仍是有必定的理解问题,因此写一下以便于像我同样误操做致使的同窗进行学习。服务器

启用本地账户:
1.先看一下本机的账户是否具备管理员的权限,若是没有添加上。
2.在开始菜单的搜索框中输入 cmd , 右键单击选择以管理员身份运行
3.在命令提示符输入 NET STOP MSSQLSERVRE 中止MSSQLSERVER运行(若已经中止则能够跳过此步骤)
4.若3有问题,提示报错,则能够在开始 -->SQL SERVER --> 配置工具 -->SQL SERVER 配置管理器 --> 打开SQL SERVER属性-->高级 --> 启动参数里面加上 -m
      加参数的时候注意一下,必定要加在启动参数的最后面而且加上分号,以便于以前的相隔开来。如: -dD:\DATA\master.mdf;-eC:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Log\ERRORLOG;-lD:\DATA\mastlog.ldf  ;-m
5.若以上均无问题,则切换到安装路径,即Binn下sqlservr.exe的路径
     如:cd C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Binn
6.执行 sqlservr.exe,即单用户模式进入了
7.再以管理员账户从新登录开启一个窗口,输入SQLCMD -A
8.输入你要更改的操做命令便可,在此处我须要的是把本机账户添加 , 如:dom

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


为了不错误,能够再加一个SQL的账户以备不时之需, 也能够把sa命令启用 :工具

-- 添加用户T1并给予管理员的权限
USE [master]
GO
CREATE LOGIN [T1] WITH PASSWORD=N'T1@123', DEFAULT_DATABASE=[master], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF
GO
EXEC master..sp_addsrvrolemember @loginame = N'T1', @rolename = N'sysadmin'
GO

-- 启用SA
ALTER LOGIN [sa] ENABLE
GO


9.以上操做完成以后关闭2个命令行窗口,启动sqlserver,便可以登录。sqlserver

 

注: 此环境为win7 + sql server 2008 其它环境没有尝试,仅做参考学习

相关文章
相关标签/搜索