Không rõ mục tiêu của bạn là gì:bạn đang cố gắng bảo vệ tài sản trí tuệ; ngăn người dùng nhìn thấy thông tin nhạy cảm trong mã nguồn (ví dụ:mật khẩu); ngăn người dùng ALTERing chính các quy trình hoặc điều gì khác? Người dùng của bạn là người dùng nội bộ trong công ty của bạn hay họ là khách hàng bên ngoài? Họ có lưu trữ cơ sở dữ liệu và ứng dụng hay không?
Để bảo vệ tài sản trí tuệ:
- Yêu cầu người dùng của bạn (khách hàng?) ký NDA hoặc hợp đồng chỉ định các điều khoản và điều kiện của bạn và bao gồm các hình phạt nếu tiết lộ tài sản trí tuệ của bạn
- Di chuyển thông tin nhạy cảm vào dịch vụ mà bạn lưu trữ và hiển thị dưới dạng dịch vụ web
Để ngăn người dùng nhìn thấy mã nguồn:
- TẠO THỦ TỤC VỚI SỰ KIỆN - điều này chỉ ngăn người dùng 'bình thường' nhìn thấy mã, nó sẽ không ngăn một người dùng được xác định có quyền sysadmin
- Viết một thủ tục CLR trong .NET thay vì sử dụng TSQL
- Di chuyển thông tin nhạy cảm vào một ứng dụng khách đã biên dịch
- Di chuyển thông tin nhạy cảm vào dịch vụ mà bạn lưu trữ và hiển thị dưới dạng dịch vụ web
Để ngăn người dùng thay đổi quy trình:
- Không cấp cho họ các quyền cần thiết
Cuối cùng, một người dùng được xác định có quyền sysadmin sẽ luôn thiết kế ngược, gỡ lỗi, dịch ngược hoặc khám phá logic trong mã của bạn. Vì vậy, bạn cần phải thật rõ ràng về chính xác những gì bạn đang cố gắng ngăn chặn, tác động có thể xảy ra đối với bạn hoặc công ty của bạn, và bạn sẵn sàng đầu tư bao nhiêu thời gian và tiền bạc để ngăn chặn điều đó.