数据库

 首页 > 数据库 > MySql > Chapter 2 User Authentication, Authorization, and Security(4):限制SA帐号的管理权限前言: 实现:原理:

Chapter 2 User Authentication, Authorization, and Security(4):限制SA帐号的管理权限前言: 实现:原理:

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

Chapter 2 User Authentication, Authorization, and Security(4):限制SA帐号的管理权限
原文出处: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 FilesMicrosoft SQL ServerMSSQL10.MSSQLSERVERMSSQLBinn 
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/

Chapter 2 User Authentication, Authorization, and Security(4):限制SA帐号的管理权限
分享到:
朴素贝叶斯算法在垃圾邮件过滤中的应用
朴素贝叶斯算法在垃圾邮件过滤中的应用由于最近在写一篇关于大数据分类的论文(吐槽一下:导师天天催),所以在图书馆借了几本有关大数据的书籍。今天看《New Internet 大数据挖掘》(感兴趣的可以看一下)中提到垃圾邮件过滤,让我联想到昨天在1280社区看到一道名企面试题,“在游戏实时交流中,怎么过滤那些广告?”。当...
八种主流NoSQL数据库对比
八种主流NoSQL数据库对比 摘要:虽然SQL数据库是非常有用的工具,但经历了15年的一支独秀之后垄断即将被打破。这只是时间问题:被迫使用关系数据库,但最终发现不能适应需求的情况不胜枚举。详见我的IT-Homer博客: 八种主流NoSQL数据库对比   简介 NoSQL,是一项全新的数据库革命性运动,NoSQL的拥护者们提倡运用非关系...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……