下周要做的数据库实验上,需要新建一个用户DCL,密码DCL,然后用此用户登录到SQL Server2005中,然后做后续操作

一看到问题,很简单嘛…虽然书上没讲过。不过摸索软件功能还是我最擅长的,于是乎打开了SQL Server2005的各个选项卡看了看,在安全性里面看到了登录名,很明显,就是这里了。于是右键新建一个登录名,输入名称,因为有密码,所以下面选择为SQL Server身份认证,输入密码,点击确定建立完毕。

然后登出用户,输入登录名,密码,点击确认,没有见到画面,反而报错:未与信任 SQL Server 连接相关联

我就纳闷了,新建一个登录名就这个麻烦么…上次害我在实验室测试了半小时。回到寝室测试还是一样

后来百度了下,才知道为什么了,当初安装SQL Server的时候,因为是本机学习使用,为了方便,就选择了验证方式为“Windows身份验证模式”,这次我们登录名设置了密码,选择成了SQL Server验证模式,所以登录当然就报错了…连SA都登陆不了…

解决方法么,因为当初我们设置的是“Windows身份验证模式”,解决方法当然就是设置成“SQL Server和Windows身份混合验证模式”,设置方法如下:

1、先用windows的用户登录进入SQL Server界面

2、对着本机的SQL Server服务器名称点右键,然后点击“属性”,选择“安全性”选项卡

3、勾上“SQL Server和Windows身份验证模式”,点击确定

4、重启SQL Server服务

在以上解决方法中,如果在第 1 步中使用”使用 Windows 身份验证”连接 SQL Server 失败,那么我们将遇到一个两难的境地:首先,服务器只允许了 Windows 的身份验证;其次,即使使用了 Windows 身份验证仍然无法连接上服务器。这种情形被形象地称之为”自己把自己锁在了门外”,因为无论用何种方式,用户均无法使用进行连接。实际上,我们可以通过修改一个注册表键值来将身份验证方式改为 SQL Server 和 Windows 混合验证,步骤如下所示:

1、点击”开始”-”运行”,输入regedit,回车进入注册表编辑器;

2、依次展开注册表项,浏览到以下注册表键:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer]

3、在屏幕右方找到名称”LoginMode”,双击编辑双字节值;

4、将原值从1改为2,点击”确定”;

5、关闭注册表编辑器;

6、重新启动SQL Server服务。

此时,用户可以成功地使用sa在企业管理器中新建SQL Server注册,但是仍然无法使用Windows身份验证模式来连接SQL Server。这是因为在 SQL Server 中有两个缺省的登录帐户:BUILTIN\Administrators 以及 <机器名>\Administrator 被删除。要恢复这两个帐户,可以使用以下的方法:

1、打开企业管理器,展开服务器组,然后展开服务器;

2、展开”安全性”,右击”登录”,然后单击”新建登录”;

3、在”名称”框中,输入 BUILTIN\Administrators;

4、在”服务器角色”选项卡中,选择”System Administrators” ;

5、点击”确定”退出;

6、使用同样方法添加 <机器名>\Administrator 登录。

以下注册表键

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer\LoginMode

的值决定了SQL Server将采取何种身份验证模式。该值为1,表示使用Windows 身份验证模式;该值为2,表示使用混合模式(Windows 身份验证和 SQL Server 身份验证)。

至此,这个问题就完美解决了….

这里我留了一个疑问,就是我一直都是用了“登录名”这个词,这个就是下次准备写的东西,因为我被老师给的报告册误导了,没搞清楚一个概念

详见下文:http://www.oeom.cn/sql-login-user-role