原文出处:http://blog.csdn.net/dba_huangzj/article/details/38817915,专题目录:http://blog.csdn.net/dba_huangzj/article/details/37906349

未经作者同意,任何人不得以“原创”形式发布,也不得已用于商业用途,本人不负责任何法律责任。

前一篇:http://blog.csdn.net/dba_huangzj/article/details/38756693

前言:

SA帐号是SQL Server的系统管理员,在安装过程中就可以启用,在SQL Server 2005之前,这个帐号不能修改,但是从2005开始,可以重命名或者禁用sa来减少被攻击的风险。在后续版本中,Sa仅作为向后兼容。由于SA是众人皆知的帐号,不建议使用。

实现:

1. 禁用sa:

ALTER LOGIN [sa] DISABLE;

2. 重命名sa:

ALTER LOGIN [sa] WITH NAME=[换成不容易被猜到的名字];

3. 重命名sa之后,可以用下面的查询找到原sa是现在的什么帐号:

SELECT * FROM sys.sql_logins WHERE principal_id = 1;

其中principal_id为1,SID是0x01的就是原sa。

原理:

在安装时,如果没有选择混合身份验证,sa是默认禁用的。如果你有sysadmin或者securityadmin固定服务器角色,可以修改sa的密码。当你决定重命名sa时,要检查是否有其他应用在使用这个帐号,重命名将可能导致这些应用运行失败。

当没有管理员权限时如何管理

本人见过很多情景,由于有意无意,把所有具有管理员权限的Windows、SQL 帐号删了,而sa又被禁用或不知道密码时,很多操作都不能进行,解决这种问题的方法可以是重建master库,详见:http://msdn.microsoft.com/zh-cn/library/dd207003.aspx(重新生成系统数据库)。但是这会丢失所有登录信息,除非你有最近的master库备份。并且需要停止SQL Server服务。

还有一种方法,本人实践过:

启用本地帐户:
1.先看一下本机的帐户是否具有管理员的权限,如果没有添加上。
2.在开始菜单的搜索框中输入 cmd , 右键单击选择以管理员身份运行
3.在命令提示符输入 NET STOP MSSQLSERVRE 停止MSSQLSERVER运行(若已经停止则可以不用此方法)
4.若3有问题,提示报错,则可以在开始 -->SQL SERVER --> 配置工具 -->SQL SERVER 服务 --> 打开SQL SERVER属性-->高级 --> 启动参数里面加上 -m
5.若以上均无问题,则切换到安装路径,即Binn下sqlservr.exe的路径
如:cd C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Binn
6.执行 sqlservr.exe,即单用户模式进入了
7.再以管理员帐户重新登陆开启一个窗口,输入SQLCMD -A
8.输入你要更改的操作命令即可,在此处我需要的是把本机帐户添加
  如:
USE master
GO
CREATE LOGIN [需要添加的帐号,一般格式是 机器名\登录账号名] FROM WINDOWS WITH DEFAULT_DATABASE=[Master]
GO
EXEC sp_addsrvrolemember @loginame=N'机器名\登录账号名', @rolename=N'sysadmin'
GO
为了避免错误,可以再加一个SQL的帐户以备不时之需, 也可以把sa命令启用
9.以上操作完成之后重新启动SQL SERVER服务登陆即可

另外可以看看下面的博客:

http://www.cnblogs.com/lyhabc/p/3513560.html

http://sqlserver-help.com/2012/02/08/help-i-lost-sa-password-and-no-one-has-system-administrator-sysadmin-permission-what-should-i-do/

下一篇:http://blog.csdn.net/dba_huangzj/article/details/38844999

Chapter 2 User Authentication, Authorization, and Security(4):限制SA帐号的管理权限的更多相关文章

  1. Chapter 2 User Authentication, Authorization, and Security(11):在已还原的数据库中修正登录映射错误

    原文出处:http://blog.csdn.net/dba_huangzj/article/details/39496517,专题目录:http://blog.csdn.net/dba_huangzj ...

  2. Chapter 2 User Authentication, Authorization, and Security(10):创建包含数据库

    原文出处:http://blog.csdn.net/dba_huangzj/article/details/39473895,专题目录:http://blog.csdn.net/dba_huangzj ...

  3. Chapter 2 User Authentication, Authorization, and Security(9):防止登录名和用户查看元数据

    原文出处:http://blog.csdn.net/dba_huangzj/article/details/39003679,专题目录:http://blog.csdn.net/dba_huangzj ...

  4. Chapter 2 User Authentication, Authorization, and Security(8):创建映射到登录名的数据库用户

    原文出处:http://blog.csdn.net/dba_huangzj/article/details/38944121,专题目录:http://blog.csdn.net/dba_huangzj ...

  5. Chapter 2 User Authentication, Authorization, and Security(4):限制SA帐户管理权限

    原版的:http://blog.csdn.net/dba_huangzj/article/details/38817915,专题文件夹:http://blog.csdn.net/dba_huangzj ...

  6. Chapter 2 User Authentication, Authorization, and Security(3):保server避免暴力袭击

    原版的:http://blog.csdn.net/dba_huangzj/article/details/38756693,专题文件夹:http://blog.csdn.net/dba_huangzj ...

  7. Chapter 2 User Authentication, Authorization, and Security(7):创建和使用用户自定义服务器角色

    原文出处:http://blog.csdn.net/dba_huangzj/article/details/38895357,专题目录:http://blog.csdn.net/dba_huangzj ...

  8. Chapter 2 User Authentication, Authorization, and Security(6):服务器权限授予粒度

    原文出处:http://blog.csdn.net/dba_huangzj/article/details/38867489,专题目录:http://blog.csdn.net/dba_huangzj ...

  9. Chapter 2 User Authentication, Authorization, and Security(5):使用固定服务器角色

    原文出处:http://blog.csdn.net/dba_huangzj/article/details/38844999,专题目录:http://blog.csdn.net/dba_huangzj ...

随机推荐

  1. JVM内存模型及分区

    Java虚拟机在程序执行过程会把jvm的内存分为若干个不同的数据区域来管理,这些区域有自己的用途,以及创建和销毁时间. JVM内存模型如下图所示: jvm管理的内存区域包括以下几个区域:  栈区: 栈 ...

  2. Mobx使用详解

    Mobx是一个功能强大,上手非常容易的状态管理工具.就连redux的作者也曾经向大家推荐过它,在不少情况下你的确可以使用Mobx来替代掉redux. 本教程旨在介绍其用法及概念,并重点介绍其与Reac ...

  3. angular2+ionic2架构介绍

    不要用angular的语法去写angular2,有人说二者就像Java和JavaScript的区别.   1. 项目所用:angular2+ionic2+typescript 2. 项目结构 3. S ...

  4. PHP FTP 函数

    PHP FTP 简介 FTP 函数通过文件传输协议 (FTP) 提供对文件服务器的客户端访问. FTP 函数用于打开.登录以及关闭连接,同时用于上传.下载.重命名.删除及获取文件服务器上的文件信息.不 ...

  5. Android的四大组件及应用安装安全问题(4)

    Android的四大组件及组件间通信 如果想对四大组件有深入的了解,那永远不要停留在一些条条干干的SDK API的认识,需要了解他的通讯,他的复用,他的边界问题,这样才会对四大组件有透明的认识. 四大 ...

  6. MFC误报内存泄露的修复

    在debug状态退出程序的时候,VS会在输出窗口列出可能的内存泄露的地方. MFC中使用DEBUG_NEW能够更方便的定位泄露的地点.但假如MFC的dll释放""过早"& ...

  7. OSTC 2015

    上周六去北京参加了OSTC 2015开源技术大会,并分享了<Spark技术内幕>,主要涵盖了Spark Core的核心实现.我主要以WordCount为例,讲解了任务调度的具体实现,资源分 ...

  8. PGM:贝叶斯网的参数估计2

    http://blog.csdn.net/pipisorry/article/details/52599321 没时间看了,下次再看... 具有共享参数的学习模型 全局参数共享 局部参数共享 具有 共 ...

  9. Apache shiro集群实现 (八) web集群时session同步的3种方法

    Apache shiro集群实现 (一) shiro入门介绍 Apache shiro集群实现 (二) shiro 的INI配置 Apache shiro集群实现 (三)shiro身份认证(Shiro ...

  10. JVM垃圾回收总结

    来自Oracle官方文档,对JVM GC知识整理的清晰易懂,查资料还是看官方的好! 1 GC步骤简述 步骤1:标记 (Marking) 根据对象引用关系,将未被任何对象引用的对象实例标记出来,如下图中 ...