学生做了一个题库系统,用C#写的ASP应用程序,数据库用SQL Server2000,交给我看看。放到服务器上后,出现问题。反复调整后发现了解决的方法,其实很简单。回过头去看了看,发现是自己对SQL Server的连接语句和用户权限的认识不足所造成的。下面将我的一些心得以及网上查到的有关资料汇集一下,以为后来者借鉴,当然很肤浅。

1、SQL Server的连接方式

以本地服务器(LocalHost),数据库(Northwind)为例,可以有以下一些连接方式
SqlConnection conn=new SqlConnection( "Server=LocalHost;Integrated Security=SSPI;Database=Northwind");
SqlConnection conn = new SqlConnection("Data Source=LocalHost;Integrated Security=SSPI;Initial Catalog=Northwind;");
SqlConnection conn = new SqlConnection(" Data Source=LocalHost;Initial Catalog=Northwind;Integrated Security=SSPI;Persist Security Info=False;Workstation Id=XURUI;Packet Size=4096; ");
SqlConnection myConn  = new SqlConnection("Persist Security Info=False;Integrated Security=SSPI;Database=northwind;Server=LocalHost");
SqlConnection conn = new SqlConnection(" Uid=sa;Pwd=***;Initial Catalog=Northwind;Data Source=LocalHost;Connect Timeout=900");

心得:

a.Server和Database,Data Source和Initial Catalog配对使用的,可以互相替换(见笑)
b.Integrated Security默认值是False,此时需要提供Uid和Pwd,即将以Sql Server 用户身份登陆数据库;如果设置为True,Yes 或 SSPI,这不能出现Uid和Pwd,将以Windows用户省份登陆数据库。强烈推荐用后一种形式,安全性更高。
c.Integrated Security和Persist Security Info同时出现,后者设置为False,可保证信息安全。

更多字符串连接说明请看MSDN:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfSystemDataSqlClientSqlConnectionClassConnectionStringTopic.asp

连接字符串的书写应该熟练后应该没有什么问题,我是再看别人的程序,说实话有些东东还真不清楚。但连接不上的问题出现后,得解决呀。所以必须要弄懂这些关键字的意义,修改后再测试。

2、SQL Server的用户设置
问题一、采用连接字符串
SqlConnection conn = new SqlConnection(" Uid=sa;Pwd=***;Initial Catalog=Northwind;Data Source=LocalHost;Connect Timeout=900");
错误:
用户"sa"登陆失败,没有可信任的Sql Server连接
查资料后找到解决方法:
原因:Sql Server的验证方式需要设置为Sql Server验证和Windows集成验证的混合方式,如果仅设置为后一种方式,就会出像上述问题
解决:运行Sql Server的企业管理器,点击服务器,在右键菜单中选择属性,选安全性,更改验证方式即可
问题二、采用连接字符串
SqlConnection conn = new SqlConnection("Data Source=LocalHost;Integrated Security=SSPI;Initial Catalog=Northwind;");
错误:
用户"computername\IWAM_servername"登陆失败
原因:SQL Server的登陆用户中不包括IWAM_servername
解决方法:运行Sql Server的企业管理器,点击服务器,选安全性,选登陆,新建登陆中加入IWAM_servername,并配备相应的权限,如只能访问Northwind数据库,数据库的角色设置为public和db_owner。

3、关于连接的安全性

最好使用SSPI的集成安全方式连接数据库,而sa用户的方式连接会存在安全隐患,我认为主要是因为在安装SQL Server时,经常会为了访问的方便设置sa的密码为空,黑客一旦让sa成为管理员,就可以获得对系统的所有访问权限。所以为了数据库的安全,可以设置 SQL server的访问用户只能经过windows集成验证,设置sa的安全密码,加强数据库的安全性。当然设置为windows集成验证后,数据库的性能和 访问的灵活性势必会受到影响,管理员可以针对每一个数据库设置不同的验证方式,而不必对SQL server设置成统一的方式。

转载于:https://www.cnblogs.com/sqwang/archive/2005/07/05/186481.html

解决SQL Server 连接时的一些基本问题后的若干初浅心得相关推荐

  1. mysql2008错误2_解决SQL Server 连接服务器 错误2

    后可看到SQ进入L 2005网络配置,右击右边窗口的MSSQLSERVER的协议. 在VIA上右击,在出现的下拉菜单中将它禁用,如果已经禁用的话,就不用做任何修改 了. 做完这些准备工作后,我们开始启 ...

  2. SQL Server 连接字符串和身份验证 学习

    SQL Server .NET Data Provider 连接字符串包含一个由一些属性名/值对组成的集合.每一个属性/值对都由分号隔开.           PropertyName1=Value1 ...

  3. SQL Server 连接字符串和身份验证

    SQL Server .NET Data Provider 连接字符串包含一个由一些属性名/值对组成的集合.每一个属性/值对都由分号隔开.           PropertyName1=Value1 ...

  4. 成功解决无法连接到YLMF-201404228CG,在建立与服务器的连接时出错。在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败

    成功解决无法连接到YLMF-201404228CG,在建立与服务器的连接时出错.在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败 ...

  5. 彻底解决SQL SERVER 2008无法远程连接的问题

    1.想要彻底解决SQL SERVER 2008无法远程连接的问题必须按照步骤来 一.为 SQL 启用远程连接 1. 单击"开始",依次指向"程序"." ...

  6. 解决SQL Server管理器无法连接远程数据库Error: 1326错误

    解决SQL Server管理器无法连接远程数据库Error: 1326错误 我们在在使用SQL Server时都会遇到使用SQL Server Management Studio无法连接远程数据库实例 ...

  7. 如何解决 SQL Server 2000 中的连接问题

    时,SQL Server 还将前滚已提交的事务和没有写入硬盘的更改.当恢复过程完成时,SQL Server 将在 SQL Server 错误日志文件中写入下列信息: Recovery Complete ...

  8. 轻松掌握使用 SQL Server 浏览器,解决SQL Server 2005跨网段不能连接问题

    SQL Server Browser  作为 Windows 服务在服务器上运行.SQL Server Browser 侦听对 SQL Server 资源的传入请求,并提供计算机上安装的 SQL Se ...

  9. 小结SQL Server连接失败错误及解决[引用]

    在使用 SQL Server 的过程中,用户遇到的最多的问题莫过于连接失败了.一般而言,有以下两种连接 SQL Server 的方式,一是利用 SQL Server 自带的客户端工具,如企业管理器.查 ...

  10. 用户 'sa' 登录失败。该用户与可信 SQL Server 连接无关联'。错误代码:18452 解决办法...

    原文:https://blog.csdn.net/wuxianwei/article/details/6330270 SQLSERVER 2005采用'SQLSERVER身份验证'去登录, 出错的原因 ...

最新文章

  1. OpenCASCADE:使用扩展数据交换 XDE之几何尺寸和公差 (GDT)
  2. 2019 年 AI 领域都发生了什么?
  3. 使用Harbor构建docker私有仓库
  4. 如果在iTerm2中复制命令特别卡,就跟慢动作似的,怎么办?
  5. java并发:原子类之AtomicLong
  6. MongoDB的C#驱动基本使用
  7. easyui combobox下拉框 的取value text的API
  8. python运算符及优先级顺序
  9. Ardunio开发实例-MAG3110磁传感器
  10. 如何修改远程服务器登录密码
  11. spss中有关独立样本T检验的详细介绍(包含操作过程和结果分析)
  12. python3一键排版证件照(一寸照、二寸照),附源代码
  13. 【魔兽世界插件】魔兽世界插件实战笔记从入门到放弃的心理历程,宏、插件和辅助的实战编写笔记和视频记录
  14. 提供一个中国身份证号码判断的类
  15. 积分商城游戏化运营?积分游戏应该如何正确设置
  16. 人力资源数据分析(包含数据来源文件)
  17. 茶饮连锁门店数字化转型
  18. jquery实时监控屏幕宽度
  19. android 蓝牙4.0广播功能应用
  20. dribbble加速vpn_关于Dribbble设计的几点思考

热门文章

  1. python怎么打出pi_随手写了段 Python,微信的地球居然转起来
  2. java案例代码3-机票打折的案例
  3. json文件内容+csv保存文件[Python]
  4. Python爬虫错误重试,超时处理
  5. springboot与dubbo整合
  6. SQL 不常用的一些命令sp_OACreate,xp_cmdshell,sp_makewebtask
  7. Python学习之路28-符合Python风格的对象
  8. 《Splunk智能运维实战》——2.8 列出浏览次数最多的产品
  9. mycat实例(1)
  10. 修改软件的ico图片方法