首先,祝各位新春快乐,万事如意!
==================
Windows 2003下安装SQL 2005选择了默认的Windows 身份验证,问题来了:
1.设置了Windows 身份验证后,是否无法从其它机器连接到此SQL Server?
2.在IIS程序下访问SQL(如ASP程序),是否需要向SQL服务器登录名中添加IUSR_机器名这个帐户?
3.“Provider=SQLOLEDB.1;Data Source=127.0.0.1;Persist Security Info=False;Initial Catalog=库名;Integrated Security=SSPI;”是否有问题?
4.如果以上设置正确的话,使用IUSR_机器名,这样的方式是否安全?

解决方案 »

  1.   

    1.用Windows身份验证登陆SQL SERVER,右键服务器属性-安全性身份验证方式改为SQL SERVER和Windows身份验证。
    2.数据库-安全性-登录名-sa右键-属性-常规选项卡:设置sqlserver验证方式的登陆密码-状态选项卡:是否连接到数据库引擎改为授予,登陆改为启用。
    如何设置远程连接?
    一、为 SQL 启用远程连接 1. 单击“开始”,依次指向“程序”、“Microsoft SQL Server 2005”和“配置工具”,然后单击“SQL Server 外围应用配置器”。 
    2. 在“SQL Server 2005 外围应用配置器”页上,单击“服务和连接的外围应用配置器”。 
    3. 在“服务和连接的外围应用配置器”页上,展开“数据库引擎”,依次单击“远程连接”和“本地连接和远程连接”,单击适用于您的环境的相应协议,然后单击“应用”。 注意:请在接收到以下消息时单击“确定”: 
    直到重新启动数据库引擎服务后,对连接设置所做的更改才会生效。 
    4. 在“服务和连接的外围应用配置器”页上,展开“数据库引擎”,依次单击“服务”和“停止”,等待 MSSQLSERVER 服务停止,然后单击“启动”以重新启动 MSSQLSERVER 服务。 二、启用 SQL Server Browser 服务 1. 单击“开始”,依次指向“程序”、“Microsoft SQL Server 2005”和“配置工具”,然后单击“SQL Server 外围应用配置器”。 
    2. 在“SQL Server 2005 外围应用配置器”页上,单击“服务和连接的外围应用配置器”。 
    3. 在“服务和连接的外围应用配置器”页上,单击“SQL Server Browser”,在“启动类型”中单击“自动”选项,然后单击“应用”。 注意:在单击“自动”选项后,每次启动 Microsoft Windows 时将自动启动 SQL Server Browser 服务。 
    4. 单击“启动”,然后单击“确定”。 三、在 Windows 防火墙中为SQL Server 2005 创建例外 1. 在 Windows 防火墙中,单击“例外”选项卡,然后单击“添加程序”。 
    2. 在“添加程序”窗口中,单击“浏览”。 
    3. 单击 C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn\sqlservr.exe 可执行程序,单击“打开”,然后单击“确定”。 注意:上述路径可能会根据 SQL Server 2005 的安装位置而不同。 四、在 Windows 防火墙中为 SQL Server Browser 服务创建例外 1. 在 Windows 防火墙中,单击“例外”选项卡,然后单击“添加程序”。 
    2. 在“添加程序”窗口中,单击“浏览”。 
    3. 单击 C:\Program Files\Microsoft SQL Server\90\Shared\sqlbrowser.exe 可执行程序,单击“打开”,然后单击“确定”。 注意:上述路径可能会根据 SQL Server 2005 的安装位置而不同。 五、远程连接端口设置(很关键的一步,很多方法只讲了一到四步,却没有讲到第五步) 1、在服务器上打开SQL Server Configuration Manager。选择SQL Server配置治理器->SQL Server 2005网络配置->MSSQLSERVER的协议->TCP/IP,在弹出对话框中选择IP地址->IPALL->TCP端口,设置为可用端口。(如果默认的1433端口老是连接不上,你就设置为你确认已经打开的端口试试,如21端口等) 2、在“服务和连接的外围应用配置器”页上,展开“数据库引擎”,依次单击“服务”和“停止”,等待 MSSQLSERVER 服务停止,然后单击“启动”以重新启动 MSSQLSERVER 服务。 
      

  2.   

    感谢二楼,但并没有针对我的问题,我不是不会设置,只是想求证。
    1.使用Windows 身份验证,是否其它机器就无法连接到SQL(所谓的安全?);
    2.由于IIS匿名帐户是IUSR_机器名,是否需要向SQL服务器添加IUSR_机器名,这个帐户?
    3.使用IUSR_机器名,这个帐户会不会造成安全问题?
    怎么能让SQL远程连接,那些权限设置等等,我想大家都非常熟悉了,这里就不必讨论了。
      

  3.   

    Sql Server 2005的1433端口打开和进行远程连接
    如何打开sql server 2005 的1433端口配置工具->Sql Server Configuration Manager->MSSQLSERVER的协议看看TCP/IP协议是否启动,如果启动,右键菜单点"属性" ,在分页菜单中选"IP地址",把"IP1"和"IP2"中"TCP端口"为1433,"已启用"改为"是"配置工具->Sql Server Configuration Manager->SQL Native Client 配置->客户端协议->TCP/IP选择TCP/IP右键菜单中"属性",确认"默认端口"是1433,"已启用"为"是"
    SQL Server 2005 远程连接配置TCP/IP属性. 
    Surface Area Configuration --> Database Engine --> Remote Connections --->Using TCP/IT SQL Server 外围应用配置器—服务和连接外围配置—database englie—远程连接—启用(远程连接的TCP/IP和named pipes)  
    SQL Server Configuration Manager—SQL2005网络配置—启用TCP/IP和named pipes
    -----------------------------------------------------------------------------------------
    一般按如上即可. 其他说明见下: 
    sqlserver2005(Express版),为了便于管理,你还需要去下一个manage管理器,微软的官方网站有 
    下,安装好manage管理器后,在程序中连接sqlserver2005,下面几点是要注意的。 
          1. 开启sql2005远程连接功能,开启办法如下, 
              
    配置工具->sql 
    server外围应用配置器->服务和连接的外围应用配置器->打开MSSQLSERVER节点下的Database Engine 
    节点,先择"远程连接",接下建议选择"同时使用TCP/IP和named pipes",确定后,重启数据库服务就可以了. 
          2.登陆设置改为,Sql server and windows Authentication方式同时选中,具体设置如下: 
            
    manage管理器->windows 
    Authentication(第一次用windows方式进去),->对象资源管理器中选择你的数据服务器--右键>属 
    性>security>Sql server and windows Authentication方式同时选中. 
          3:设置一个Sql server方式的用户名和密码,具体设置如下: 
        manage管理器->windows Authentication>new query>sp_password null,'sa123456','sa' 
        这样就设置了一个用户名为sa ,密码为:sa123456的用户,下次在登陆时,可以用Sql server方式, 
    用户名为sa ,密码为:sa123456的用户进数据库了. 
          4: 做完上面三步后,这样写连接字符串就可以顺利进入数据库了, 
            (server=.\\sqlexpress;uid=sa;pwd=sa123456;database=master"; 
    其它版本,做如下設置 程序—Microsoft SQL Server 2005—配置工具—SQL Server 外围应用配置器—服务和连接的外围应用配置器— 
    1、MSSQLserver(实例名)—DataBase Engine—远程连接—(设置选项) 
    在下方选项 
    2、SQL Server Browser—服务(停止时只本机访问) 
    3、程序—Microsoft SQL Server 2005—配置工具—SQL Server Configuration Manager—网络连接协议-选择实例对应协议—启用(shard memory、Named Pipes、TCP\IP) 
    注: SQL Server 浏览器程序以服务的形式在服务器上运行。SQL Server 浏览器侦听对 Microsoft SQL Server 资源的传入请求,
    并提供计算机上安装的 SQL Server 实例的相关信息。
    SQL Server 浏览器可用于执行下列三种操作: 
    浏览可用服务器 
    连接到正确的服务器实例 
    连接到专用管理员连接 (DAC) 端点 
    SQL Server Browser 服务 (sqlbrowser) 为数据库引擎 和 SSAS 的每个实例提供实例名称和版本号。
    SQL Server 浏览器随 Microsoft SQL Server 2005 一起安装,
    为该计算机上运行的早期版本的 SQL Server(从 Microsoft SQL Server 7.0 开始)提供此服务。
      

  4.   

    1.设置了Windows 身份验证后,是否无法从其它机器连接到此SQL Server?
    答:“Provider=SQLOLEDB.1;Data Source=安装SQL的IP;Persist Security Info=False;Initial Catalog=库名;Integrated Security=SSPI;”这台代码放在跟SQL不同的机器上是连接不进来的,也就是只有WEB跟SQL同一台机器才能用SSPI。
    2.在IIS程序下访问SQL(如ASP程序),是否需要向SQL服务器登录名中添加IUSR_机器名这个帐户?
    答:点击IIS上网站属性---目录安全---身份验证那栏点“编辑”,默认是IUSR,估计这个用户没有那么大的权限,如果你的程序没有FSO之类的,可以用administrator组用户。3.“Provider=SQLOLEDB.1;Data Source=127.0.0.1;Persist Security Info=False;Initial Catalog=库名;Integrated Security=SSPI;”是否有问题?
    答:没试过,我用的是strConn = "Provider=SQLOLEDB;Data Source= (local);Integrated Security=SSPI;Initial Catalog=master;"
    4.如果以上设置正确的话,使用IUSR_机器名,这样的方式是否安全?
    答:要看“IUSR_机器名”用户安全不安全了,个人觉得这个用户没有MSSQL权限,除非你重新设置MSSQL服务用户权限。一般程序上没有FSO也没有注入的话可以用admin组权限。
      

  5.   

    如果楼主跟服务器权限不熟练的话,建议不要用SSPI,一定要用的话要搞清MSSQL服务是那个用户在跑的,在 控制面板----服务---SQL Server (MSSQLSERVER)右键----属性---登陆 里可以看到。一般安装MSSQL的时候,我们都会给他新建一个用户来跑MSSQL服务。