欢迎投稿

今日深度:

Chapter 2 User Authentication, Authorization, and Security(

Chapter 2 User Authentication, Authorization, and Security(4):限制SA帐号的管理权限,authentication


原文出处: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/


以SQL Server and Windows Authentication mode登陆后出现麻烦?

你的问题把我搞惨了,我也遇到过。解决办法如下:
“在建立与服务器的连接时出错。在连接到 SQLServer 2005 时,在默认的设置下 SQL Server不允许进行远程连接可能会导致此失败。 (provider: 命名管道提供程序,error: 40 - 无法打开到 SQL Server 的连接)”

我太恨这句话了。本以为会很简单的数据库连接,居然困扰了我好几天。问了身边很多人、查了大量资料无果,今天终于在网上找到正确的答案并顺利解决了。究其根本,原因出在server参数设置的问题上。

以下是完整的解决方案:
1:最重要,servers服务开启。

1.安装一个SQLServer的管理工具(VS2005只有配置工具),据说微软的官方网站有下。

2.开启sql2005远程连接功能,开启办法如下:
配置工具->sqlserver外围应用配置器->服务和连接的外围应用配置器->打开MSSQLSERVER节点下的DatabaseEngine 节点,选择"远程连接",接下建议选择"同时使用TCP/IP和namedpipes",确定后,重启数据库服务就可以了.
3.登陆设置改为,Sql server and windowsAuthentication方式同时选中,具体设置如下:
manage管理器->windowsAuthentication(第一次用windows方式进去),->对象资源管理器中选择你的数据服务器--右键>属性>security>Sqlserver and windows Authentication方式同时选中.
4:设置一个Sql server方式的用户名和密码,具体设置如下:
进入manage管理器后,找到服务器下的Security->Logins->sa,右键属性,设置密码为sa(当然也可以设置其他用户名和密码)这样就设置了一个用户名为sa,密码为sa的用户,下次在登陆时,可以用Sql server方式,用户名为sa,密码为:sa的用户进数据库了。
5: 做完上面四步后,这样写连接字符串就可以顺利进入数据库了,
(server=.\\sqlexpress;uid=sa;pwd=sa;database=master");

注意!正确的Server名是这样的,机器名\SQLEXPRESS而不是LOCALHOST,127.0.0.1,MJZG(机器名)比如我的是这样的Server:TDS\SQLEXPRESS
 

几个专业名词:有关网络的

英文原义:The Internet Gopher Protocol

中文释义:(RFC-1436)网际Gopher协议

注解:这是一种互联网没有发展起来之前的一种从远程服务器上获取数据的协议。Gopher协议目前已经很少使用,它几乎已经完全被HTTP协议取代了。

IETF
1、概述

IETF(互联网工程任务组—The Internet Engineering Task Force)是松散的、自律的、志愿的民间学术组织,成立于1985年底, 其主要任务是负责互联网相关技术规范的研发和制定。

IETF是一个由为互联网技术工程及发展做出贡献的专家自发参与和管理的国际民间机构。它汇集了与互联网架构演化和互联网稳定运作等业务相关的网络设计者、运营者和研究人员,并向所有对该行业感兴趣的人士开放。任何人都可以注册参加IETF的会议。IETF大会每年举行三次,规模均在千人以上。
IETF大量的技术性工作均由其内部的各类工作组协作完成。这些工作组按不同类别,如路由、传输、安全等专项课题而分别组建。IETF的交流工作主要是在各个工作组所设立的邮件组中进行,这也是IETF的主要工作方式。

目前,IETF已成为全球互联网界最具权威的大型技术研究组织。但是它有别于像国际电联(ITU-International Telecommunication Union)这样的传统意义上的标准制定组织。IETF的参与者都是志愿人员,他们大多是通过IETF每年召开的三次会议来完成该组织的如下使命:

1.鉴定互联网的运行和技术问题,并提出解决方案;
2.详细说明互联网协议的发展或用途,解决相应问题;
3.向IESG提出针对互联网协议标准及用途的建议;
4.促进互联网研究任务组(IRTF)的技术研究成果向互联网社区推广;
5.为包括互联网用户、研究人员、行销商、制造商及管理者等提供信息交流的论坛。

2、IETF相关组织机构

(1)互联网协会(ISCO -Internet Society)
ISCO是一个国际的,非盈利性的会员制组织,其作用是促进互联网在全球范围的应用。实现方式之一便是对各类互联网组织提供财政和法律支持,特别是对IAB管理下的IETF提供资助。

(2)互联网架构委员会(IAB-Internet Architecture Board)
IAB是ISOC的技术咨询团体,承担ISCO技术顾问组的角色;IAB负责定义整个互联网的架构和长期发展规划,通过IESG向IETF提供指导并协调各个IETF工作组的活动,在新的IETF工作组设立之前IAB负责审查此工作组的章程,从而保证其设置的合理性,因此可以认为IAB是IETF的最高技术决策机构。
另外,IAB还是IRTF的组织和管理者,负责召集特别工作组对互联网结构问题进行深入的研讨。

(3)互联网工程指导组(IESG-Internet Engineering Steering Group)
IETF的工作组被分为8个重要的研究领域,每个研究领域均有1-3名领域管理者(Ads—Area Directors),这些领域管理者ADs均是IESG的成员。
IESG负责IETF活动和标准制定程序的技术管理工作,核准或纠正IETF各工作组的研究成果,有对工作组的设立终结权,确保非工作组草案在成为请求注解文件(RFC)时的准确性。
作为ISOC(Internet协会)的一部分,它依据ISOC理事会......余下全文>>
 

www.htsjk.Com true http://www.htsjk.com/shujukunews/2857.html NewsArticle Chapter 2 User Authentication, Authorization, and Security(4):限制SA帐号的管理权限,authentication 原文出处:http://blog.csdn.net/dba_huangzj/article/details/38817915 ,专题目录: http://blog.csdn.net/dba_huangzj/...
评论暂时关闭