2012-03-05 28 views
6

Tôi đã dưới đây lưu trữ trong excel vĩ mô: -Làm thế nào để che giấu excel mã macro

Sub Sales() 

Dim StrSQl As String 

Con = "Provider=IBMDA400;Data Source=192.168.2.2;User Id=boss;Password=1we56" 

Set Db = CreateObject("ADODB.Connection") 
Set rs = CreateObject("ADODB.recordset") 
Db.connectionSTring = Con 
Db.Open 
StrSQl = "select myuc, sum (myac) as Amount from myabc.myqwerty where mydt >= 20100101 and mydt <= 20100831 group by (mycl)" 
rs.Open StrSQl, Db, 3, 3 
Sheet1.Cells(10, 1).CopyFromRecordset rs 
rs.Close 
Set rs = Nothing 
Set cn = Nothing 
End Sub 

Tôi muốn mặt nạ trên User ID & Password tức. User Id=****;Password=***** là một phần của bảo mật.

Điều đó có khả thi không?

+2

Tôi muốn nói mật khẩu bảo vệ dự án vba. – Pynner

+0

Ok nhưng nó không phải là lựa chọn tốt nhất. Có nhiều cách để crack nó, nhưng nếu ID & Password được đeo mặt nạ, điều đó sẽ cung cấp thêm sự bảo mật. – Bob

+2

@Bob Có nhiều cách để crack mọi loại bảo mật, thật không may là bản chất của sự vật, không có hệ thống nào có thể được tạo ra mà không thể bị phá vỡ. Mọi người có thể sẽ cần các chương trình trả tiền để phá vỡ dự án VBA và do đó không có khả năng làm phiền. –

Trả lời

11

lựa chọn an toàn nhất của bạn - bất kể người sử dụng cần phải gõ mật khẩu trong hay không - là để bảo vệ toàn bộ mã macro của bạn

  • Nhập Visual Basic Editor (VBE)
  • chọn dự án bạn muốn bảo vệ trong cửa sổ Project Explorer
  • cliick ngay sau đó .... VBAProject Thuộc tính
  • nhấp vào tab bảo vệ và sau đó kiểm tra "dự án Khóa từ xem" và xác minh mật khẩu
  • Lưu sổ làm việc của bạn, đóng sổ làm việc và mở lại để thiết lập sự bảo vệ

Viết ngắn một số COM bổ sung mã này sẽ an toàn như mã của bạn. Được cảnh báo rằng có những sản phẩm có sẵn mà sẽ crack VBA đang

enter image description here

+1

+1 Giải thích rõ ràng. –

+0

+1 giải thích tốt – SWa

+1

Câu trả lời hay như mọi khi :) (+1 cho lần thứ 10 để nhận huy hiệu đồng). Tuy nhiên, chúng tôi có thể chỉ ra chủ đề này: http://stackoverflow.com/questions/259897/how-password-protection-of-excel-vba-code-works mô tả cách bảo mật VBA kém như thế nào – JMax

2
Con = "Provider=IBMDA400;Data Source=192.168.2.2;User Id=boss;Password=1we56" 

AARRGGHH !! Bạn đang nghĩ gì vậy?

Đây là giao dịch. Không có số lượng mã hóa sẽ giúp bạn ở đây bởi vì, nếu bản thân Excel có thể không mã hóa dữ liệu (và nó có thể, nếu không kết nối không bao giờ có thể được thực hiện), thì một loại độc hại cũng có thể làm điều đó.

Cách đúng để thực hiện việc này là yêu cầu người dùng nhập ID người dùng và mật khẩu và sử dụng thông tin đó để tự động tạo chuỗi kết nối.

Bằng cách đó, thông tin nhạy cảm chỉ tồn tại trong phần đầu của người dùng và (tạm thời) trên máy họ đang sử dụng (có thể là máy của họ). Nó không nằm trong một bảng tính Excel ở đâu đó mà bất cứ ai cũng có thể nhận được.

Và, trên hết, ID chức năng (được chia sẻ giữa những người dùng khác nhau) hầu như luôn là một ý tưởng tồi vì nó làm cho việc kiểm tra cơn ác mộng.

Các vấn đề liên quan