用iis 匿名访问windows 上的sql server数据库
远程访问数据库sql server 2000)
- 问题 登录失败
[microsoft][onpc soL Server Driver][sQL Server]用户*FKEFQ31UAQ8KG9S\IUSR_FKEFQ3IUAQ8KG9S’登录失败
问题 登录失败
多半是没有用户
添加用户
1. 为 IIS 匿名用户创建登录名
在 SQL Server 2000 中,你需要为这个 Windows 用户创建登录名:sql
-- 为 IIS 匿名用户创建 Windows 身份验证的登录名
EXEC sp_grantlogin 'FKEFQ3IUAQ8KG9S\IUSR_FKEFQ3IUAQ8KG9S'
2. 在目标数据库中创建用户并授予权限
sql
-- 切换到你的数据库
USE YourDatabaseName-- 创建数据库用户
EXEC sp_grantdbaccess 'FKEFQ3IUAQ8KG9S\IUSR_FKEFQ3IUAQ8KG9S', 'IUSR_User'-- 授予读写权限
EXEC sp_addrolemember 'db_datareader', 'IUSR_User'
EXEC sp_addrolemember 'db_datawriter', 'IUSR_User'
asp脚本
<%@LANGUAGE="VBScript" CodePage="65001"%>
<%
Response.ContentType = "application/json"
On Error Resume Next'=== 数据库连接字符串 ===
dbstr = Request("dbstr")
If dbstr = "" Then dbstr = "DSN=sql;Database=aaa;"sql = Request("sql")
If sql = "" ThenResponse.Write "{""err"":""no sql""}"Response.End
End If'=== 建立连接 ===
Dim conn, rs
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open dbstr
If Err.Number <> 0 ThenResponse.Write "{""err"":""" & Replace(Err.Description, """", "'") & """}"Response.End
End If'=== 执行查询 ===
Set rs = conn.Execute(sql)
If Err.Number <> 0 ThenResponse.Write "{""err"":""" & Replace(Err.Description, """", "'") & """}"Response.End
End If'=== 转 JSON ===
Dim i, firstRow
Response.Write "["
firstRow = True
Do Until rs.EOFIf Not firstRow Then Response.Write ","Response.Write "{"For i = 0 To rs.Fields.Count-1If i > 0 Then Response.Write ","Response.Write """" & rs.Fields(i).Name & """:"Response.Write """" & Replace(rs.Fields(i).Value & "","""","'") & """"NextResponse.Write "}"firstRow = Falsers.MoveNext
Loop
Response.Write "]"'=== 清理 ===
rs.Close
conn.Close
Set rs = Nothing
Set conn = Nothing
%>
查询出来有结果
OK
用iis 匿名远程访问 sql server就好了