zoukankan      html  css  js  c++  java
  • [转]SQL SERVER 2008 登陆失败(SQL和windows都没有对应的权限)

    转自:http://www.cnblogs.com/zerocc/p/3425431.html

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

          方法就是:把 sql 启动到单用户模式,然后用 sqlcmd -A 登录,前提是你需要有电脑的管理员权限。网上有很多方法是一样的,但是对于单用户模式的说明都不太详细,至少对于像我这种小白来讲还是有一定的理解问题,所以写一下以便于像我一样误操作导致的同学进行学习。

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

    USE master
    GO
    CREATE LOGIN  [domainusername]  FROM WINDOWS WITH DEFAULT_DATABASE=[Master]
    GO
    EXEC sp_addsrvrolemember @loginame=N'domainusername', @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,即可以登陆。

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

  • 相关阅读:
    php1
    element ui
    webpack
    vue-router
    vue实例相关2
    vue实例相关
    js笔记2
    js笔记
    不找工作,你的简历也要更新!
    除了做测试,我们还能做些什么呢?
  • 原文地址:https://www.cnblogs.com/msdynax/p/4528861.html
Copyright © 2011-2022 走看看