PDA

View Full Version : Hỏi về chuỗi kết nối



Katatunia
24-01-2007, 23:25
Trong MS SQL 2000, mình tạo 1 database là mydatabase, sau đó code trong trang asp là:

strconn="Provider:SQLOLEDB.1;Persist Security Info=False;User ID=sa;PWD=;Initial Catalog=mydatabase"

set conn = server.createObject("ADODB.connection")

conn.open strconn

Chạy trang asp trên thì có lỗi ở dòng cuối, đại loại có vấn đề ở user sa, thay đổi thành tên khác cũng vẫn vậy, hoặc bỏ User ID và PWD cũng ko được! Mình thử làm với Access (tất nhiên dùng chuỗi kết nối cho Access) thì lại thành công.
Mong các bạn giúp đỡ!

xbacala
25-01-2007, 01:34
Thử 2 cái này:

- Add Data Source=(local) vào strconn và sửa PWD thành Password
strconn="Data Source=(local);Provider:SQLOLEDB.1;Persist Security Info=False;User ID=sa;Password=;Initial Catalog=mydatabase"
- Nếu vẫn 0 được thì đặt pasword cho sa là cái gì đó, đừng để empty
- Nếu vẫn 0 được thì paste nguyên văn cái error message lên đây !

Katatunia
25-01-2007, 11:37
Cám ơn bạn, mình đã theo các cách trên nhưng vẫn bị lỗi cũ là:

Error Type:
Microsoft OLE DB Provider for SQL Server (0x80004005)
Login failed for user 'sa'. Reason: Not associated with a trusted SQL Server connection.

minhdien
25-01-2007, 17:23
Với MS SQL2000 thì không cần tham số Provider, bạn tham khảo bài viết ở link sau: http://solutionvn.com/forums/post/292.aspx

Các link sau đây cũng cùng chủ đề với link trên:
http://solutionvn.com/forums/post/291.aspx
http://solutionvn.com/forums/post/293.aspx

xbacala
25-01-2007, 21:12
chỉ khi you dùng với ADO.NET với SqlClient thì mới không cần provider thôi, còn các tường hợp khác như ADO.NET với OLEDB, ADO thì phải có. Không phụ thuộc vào you dùng Access, SQL 2000 hay 2005 !

Katatunia dùng ADO thì phải có thông số đó !

Cái lỗi của Katatunia là hiện nay SQL Sever của you đang ở "Windows Only" authentication mode. You phải chuyển qua "Mix mode" thì mới login bằng user của SQL được.

MMC->Right click vào SQL Server name -> Properties -> Chọn Security tab -> Change Authentication mode to "SQL Server and Windows"

Katatunia
26-01-2007, 00:20
xbacala nói rất đúng. Mình làm như thế và đã thành công. Tìm hiểu thêm thì ra là vì SQL Server có thể dùng chung chế độ bảo mật (security) với Win NT và cũng có thể dùng chế độ bảo mật riêng của nó. Trong Production Server người ta thường dùng Windows Authetication vì độ an toàn cao hơn và dễ dàng cho người quản lý mạng và cả cho người sử dụng. Nghĩa là một khi bạn được chấp nhận (authenticated) kết nối vào domain thì bạn có quyền truy cập dữ liệu (access data) trong SQL Server.