Trang 3 / 12 FirstFirst 1234568 ... LastLast
Hiển thị kết quả từ 21 đến 30 / 111
  1. #21
    Tham gia
    15-05-2003
    Location
    hcm city
    Bài viết
    63
    Like
    0
    Thanked 0 Times in 0 Posts
    Như vậy có thể khẳng định là không thể dùng VBA để khoá chức năng Import và link table của MS Access. Có đúng vậy không ? Bạn cho mình biết ý kiến đi.
    Chào

  2. #22
    Tham gia
    08-07-2004
    Bài viết
    192
    Like
    0
    Thanked 14 Times in 14 Posts
    "Vâng đúng vậy, không có cách nào khoá được import, link bằng VBA một cách triệt để". Ở đây có sự nhầm lẫn về khái niệm một chút bạn ạ:
    MDB được thiết kế với ý tưởng ban đầu là cơ sở dữ liệu, việc tích hợp thêm VBA vào MDB được bổ sung thêm.
    Với một cơ sở dữ liệu MDB, các đối tượng bảng là đơn vị có thể truy cập được từ các ứng dụng khác để khai thác dữ liệu, các đối tượng Form, module macro là các đối tượng chỉ có thể khai thác và thực thi được với MSaccess, do đó nói dùng VBA để khoá CSDL là sai. Việc khoá Csdl chỉ thực hiện được thông qua việc ngăn cản truy cập đối với đối tượng bảng - công việc này diễn ra ở lớp ngoài. VBA của Mdb nằm ở lớp trong, các thực thi này chỉ thực hiện được khi có Ms access. Nên việc dùng một cơ cấu nằm trong để bảo vệ lớp ngoài là không được.
    Thêm vào đó, chức năng link, import là chức năng của cấp ứng dụng và đều sử dụng trên nền của Data engine (DAO, RDO...) do vậy nếu bạn chống lại việc import, link thì phải can thiệp vào data engine để loại bỏ khả năng kết nối, điều này lại không khả thi do các nguyên nhân sau:
    + Bạn đã ngăn cản chính bạn trong việc khai thác dữ liệu.
    + Bạn khó có thể can thiệp vào Dataengine do không biết mã nguồn.
    + Nếu bạn làm được thì bạn chỉ bảo vệ được ở máy tính củabạn thôi vì DAO, RDO... là chuẩn kết nối dữ liệu chung, giống nhau ở tất cả các ứng dụng khai thác dữ liệu
    Vậy thì, muốn chống lại việc import hay link một cách thành công (lúc này được gọi là chống khai thác dữ liệu trái phép, vì bản thân người dùng đã lấy được dữ liệu của bạn song họ có thể không đọc được nội dung thông tin) bạn chỉ có cách là mã hoá dữ liệu trong bảng hoặc mã hoá tiền khả thi như tôi đã trình bày.
    ....Nay kính thư....

  3. #23
    Tham gia
    03-05-2004
    Location
    HN
    Bài viết
    31
    Like
    0
    Thanked 0 Times in 0 Posts

  4. #24
    Tham gia
    08-07-2004
    Bài viết
    192
    Like
    0
    Thanked 14 Times in 14 Posts

    Các vấn đề về bảo mật csdl mdb

    1. Trả lời bạn Enemykill
    Quote Được gửi bởi enemykill1
    Thật ra các phần mềm dò tìm password tôi thấy không hiệu quả cho lắm nếu bạn kết hợp ký tự ( ví dụ: h245#j1123).
    Bạn Enemykill có thể đã nhầm lẫn, đến tận phiên bản 2003 thì chức năng khoá cơ sở dữ liệu bằng mật khẩu lớp ngoài vẫn sử dụng công nghệ XOR phân lớp. Cách này chẳng khó khăn gì cho các phần mềm bẻ khoá, họ chỉ cần dò phần Header, làm một vài cách so sánh thế là đã có thể bẻ khoá ngon lành.
    Lý do mà MS vẫn dùng kiểu khoá dữ liệu này là vì: Các database engine vẫn truy cập vào MsAccess theo kiểu truyền thống và chưa có cải thiện trong việc giải mã một cơ sở dữ liệu phi môi trường đã được mã hoá. Phi môi trường có nghĩa là không có một ứng dụng hoàn thiện để cung cấp các chuẩn liên kết dữ liệu dạng hỏi đáp. SQL, MYSQL, ORACLE là các dataengine nền môi trường, muốn liên kết với dữ liệu của nó bạn phải vượt qua lớp ứng dụng quản lý dữ liệu trước. Trong khi Mdb, dbf, dbase... là chuẩn liên kết không phải qua lớp ứng dụng, do đó việc khoá hay không khoá dữ liệu đều phụ thuộc vào dataengine..... và thường thì các dataengine này đều cần tốc độ hơn là bảo mật do đó họ không thể mã hoá toàn bộ csdl mà chỉ mã hoá phần header của Mdb để ánh xạ lại vị trí bảng, kích thước bản ghi mà thôi. Nếu có đúng chìa khoá thì đọc đúng các nội dung trên, nếu không có chìa khoá hoặc chìa khoá sai thì không đọc được định dạng bảng và kích thước bản ghi..
    ....Nay kính thư....
    Được sửa bởi paulsteigel lúc 10:15 ngày 23-04-2005

  5. #25
    Tham gia
    15-05-2003
    Location
    hcm city
    Bài viết
    63
    Like
    0
    Thanked 0 Times in 0 Posts
    Cám ơn bạn Paulsteigel nhiều. Mình đã hiểu rõ vấn đề rồi.Tuy nhiên mình vẫn nghĩ là có thể dùng VBA để khóa chức năng import của MS access bằng cách loại bỏ hoặc ẩn menu import, cho dù chỉ trên một máy mà thôi (nếu copy .MDB sang máy khác vẫn bình thường). Ý nghĩ đó có khả thi không bạn?
    Chào

  6. #26
    Tham gia
    08-07-2004
    Bài viết
    192
    Like
    0
    Thanked 14 Times in 14 Posts
    Vâng, cách của bạn rất hay, tuy nhiên cũng không khả thi lắm vì các lý do sau:
    + Chúng ta chỉ ẩn chức năng này thôi do đó nó vẫn tồn tại và vẫn có thể truy cập vào nó theo cách này hoặc cách khác.
    + Tay chơi nào biết một chút về câu lệnh của Access thì họ hoàn toàn có thể sử dụng lệnh của macro hoặc vài đoạn code để thực thi sự kiện nhập dữ liệu của bạn.
    Tiện đây tôi quay trở lại với cách làm ẩn menu của bạn, để làm được thì bạn cần phải biết chỉ số (ID) của lệnh này trong hệ thống vài ngàn lệnh của Access, nếu tôi không lầm thì cũng đã làm một bài viết về cách lấy toàn bộ ID của Menu Excel rồi thì phải, với Access cũng tương tự thôi.
    Sau khi lấy được các ID này, bạn chỉ cần làm cho nó disable là được.
    Hôm nay bận quá, nên tôi sẽ trả lời sâu thêm về vấn đề này vào dịp khác hoặc bạn Email cho tôi nhé.

  7. #27
    Tham gia
    14-03-2005
    Bài viết
    6
    Like
    0
    Thanked 0 Times in 0 Posts
    Chào bạn Paulsteigel, trước giờ khi cần bảo vệ dữ liệu trong Access tui vẫn thường sử dụng user-level security, hôm nay nghe bạn nói "Thông tin vẫn bị mất bằng một vài thao tác khá đơn giản" thì tui khá kinh hãi. Bạn có thể hướng dẫn cho tui các thao tác đơn giản đó để tui test thử mấy file Access của tui được không ? Cám ơn bạn trước.

  8. #28
    Tham gia
    13-04-2005
    Bài viết
    7
    Like
    0
    Thanked 0 Times in 0 Posts

    Luu du lieu tu Excel Form vao Table Access

    Chao ban,

    Minh dang dung 01 Form trong Excel User nhap du lieu va sau do luu du lieuvao bang Access.

    Trong Form co nhieu textbox trong do co 01 textbox dung de nhap ngay, textbox nay cung co the blank. Khi User nhap du lieu vao textbox nay tren Form thi minh co the luu vao Access duoc. Nhung neu textbox nay blank, nghia la User khong nhap du lieu vao thi khi luu vao Access bao loi 'Type mismatch'.

    Theo suy doan cua minh thi vi field trong Access luu textbox nay co data type la Date/Time nen no khong chap nhan du lieu la blank. Field nay chi chap nhan 01 gia tri ngay nao do hoac null.

    Co ban nao giup minh lam sao de luu blank vao field nay hoac chuyen du lieu blank tu Form thanh null truoc khi luu vao Access.

    Cam on ban rat nhieu.

    Nam

  9. #29
    Tham gia
    08-07-2004
    Bài viết
    192
    Like
    0
    Thanked 14 Times in 14 Posts
    <<Chào bạn Paulsteigel, trước giờ khi cần bảo vệ dữ liệu trong Access tui vẫn thường sử dụng user-level security, hôm nay nghe bạn nói "Thông tin vẫn bị mất bằng một vài thao tác khá đơn giản" thì tui khá kinh hãi. Bạn có thể hướng dẫn cho tui các thao tác đơn giản đó để tui test thử mấy file Access của tui được không ? Cám ơn bạn trước. >>.
    Có lẽ tôi không dám mạn đàm về Mdb Security nữa, mời bạn vào forum này đọc đoạn này có lẽ rõ hơn nhỉ: http://www.experts-exchange.com/Data..._21141537.html
    Thêm một cái này nữa:
    http://www.eggheadcafe.com/ng/micros...ty/default.asp
    http://support.microsoft.com/default...t%2Fsecfaq.asp
    Nếu có gì bạn cứ nói nhé, đây là chủ đề nhiều người đau đầu đấy ạ. À quên, bạn cứ copy cái tập tin mdb của bạn sang máy khác, tìm file system.mdw và đổi tên thành system.aaa thôi, và thử xem... hihi

    Quote Được gửi bởi namlh
    Chao ban,

    Minh dang dung 01 Form trong Excel User nhap du lieu va sau do luu du lieuvao bang Access.

    Trong Form co nhieu textbox trong do co 01 textbox dung de nhap ngay, textbox nay cung co the blank. Khi User nhap du lieu vao textbox nay tren Form thi minh co the luu vao Access duoc. Nhung neu textbox nay blank, nghia la User khong nhap du lieu vao thi khi luu vao Access bao loi 'Type mismatch'.

    Theo suy doan cua minh thi vi field trong Access luu textbox nay co data type la Date/Time nen no khong chap nhan du lieu la blank. Field nay chi chap nhan 01 gia tri ngay nao do hoac null.

    Co ban nao giup minh lam sao de luu blank vao field nay hoac chuyen du lieu blank tu Form thanh null truoc khi luu vao Access.

    Cam on ban rat nhieu.

    Nam
    Chúng ta cần phân biệt nhé: Blank = trắng (Ngầm hiểu cho kiểu ký tự), empty=rỗng (Dùng để kiểm tra xem một biến đối tượng là rộng hay không), null (Ngầm hiểu là giá trị rỗng cho mọi đối tượng và kiểu dữ liệu)
    Vì thế bạn cần đặt một lệnh kiểm tra xem texbox là trắng hay không bằng cách sử dụng dẫu nháy kép rỗng, nếu trắng thật thì gán giá trị Null, đảm bảo được.
    Private Sub CommandButton1_Click()
    Dim db As Database
    Dim rs As Recordset
    Set db = OpenDatabase("C:\My Documents\db1.mdb")
    Set rs = db.OpenRecordset("Select * from Activity;")
    With rs
    .AddNew
    .Fields(1) = "A"
    .Fields(2) = "B"
    if TextBox1.text="" then .Fields("Day") = Null else .Fields("Day") = format(TextBox1.text,"dd/mm/yyyy")
    .Update
    .Close
    End With
    End Sub
    Được sửa bởi paulsteigel lúc 11:00 ngày 28-04-2005

  10. #30
    Tham gia
    14-03-2005
    Bài viết
    6
    Like
    0
    Thanked 0 Times in 0 Posts
    Tui thử đổi tên file system.mdw thành system.aaa thì thấy không mở được file mdb đã bật user-level security, đồng thời 1 file system.mdw mới được tạo ra.
    Tiếc là tui không up file test.mdb lên ddth.com được (forbidden). Không biết còn cách nào để gửi được cho bạn để nghiên cứu thử.

    Link trên Expert Exchange không vào xem được (phải có membership)
    Link thứ 2 thì nhiều topic quá.
    Link trên microsoft thì lúc trước cũng đọc qua rồi.

Trang 3 / 12 FirstFirst 1234568 ... LastLast

Bookmarks

Quy định

  • Bạn không thể tạo chủ đề mới
  • Bạn không thể trả lời bài viết
  • Bạn không thể gửi file đính kèm
  • Bạn không thể sửa bài viết của mình
  •