什么是 Microsoft Jet 数据库?它是否适合包含敏感信息的小型应用程序?
我正在计划一个新的 ASP.NET 项目,该项目将成为由在不同公司工作的技术人员安装的产品。该程序将存储敏感信息,包括技术人员在内的工作人员不应轻易访问这些信息。
我需要在简单直接的安装与安全性和可靠性之间取得平衡。如今,C# 开发人员的默认数据库似乎是 MS SQL,但一些将安装此数据库的公司可能没有自己的 SQL 服务器,因此有人建议我使用 Microsoft JET 数据库。 MS JET 是什么?它是产品还是技术?数据库将非常基本,只有几个表,我不需要 SQL 的所有功能,是否有任何适合的数据库不需要像 SQL 这样的安装(即一个简单的文件)?
谢谢杰
I'm planning a new ASP.NET project that will become a product that is installed by techinical staff that work in various companies. The program will be storing sensitive information that shouldn't be easily accessible to staff including the technical staff.
I need to balance an easy straight forward installation with security and reliability. The default db these days seems to be MS SQL for C# developers but some companies that will be installing this may not have their own SQL server so someone has suggested I use Microsoft JET database. What is MS JET is it a product or a technology? The database will be quite basic just a couple of tables, I don't need all the power of SQL, are there any db suitable that don't require an installation like SQL (i.e. a simple file)?
Thanks J
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
如今,在 .NET 中执行无服务器数据库工作的首选方法是使用 SQL Server Compact -它具有文件中数据库,并且不需要任何服务器进程 - 所有代码都作为简单的 DLL 直接在进程内运行。
不建议使用 Jet 作为通用存储后端。它曾经是一个合理的默认选择,但现在 Jet 由 Microsoft Access 团队独家拥有,并将根据他们的目的进一步开发和定制。
The preferred way to do serverless database work in .NET these days is to use SQL Server Compact - it has database-in-a-file, and doesn't require any server processes - all code runs directly inside your process as a simple DLL.
Using Jet as a general-purpose storage backend is not recommended. It used to be a reasonable default choice, but now Jet is exclusively owned by Microsoft Access team, and will be further developed and tailored for their purposes.
听起来 SQLite 可能是一个不错的选择,安装非常简单。您可以通过身份验证、加密等实现独立于数据库平台的安全性。
Sounds like SQLite may be a good option, very easy install. You can implement security independent of your db platform, through authentication, encryption, etc.
我是 Access 和 Jet/ACE 的忠实粉丝,但对于敏感数据,Jet/ACE 并不是一个好的选择,因为它无法像服务器数据库引擎那样真正得到保护。
也就是说,许多认为自己的数据敏感且需要最高级别安全技术的人只是在自欺欺人。
安全几乎始终是一个人的问题,也是一个技术问题,即使使用最安全的技术,您仍然必须信任人们,以便让他们访问完成工作所需的数据。您的数据库可能被完全锁定,但如果您可以信任您的系统管理员,那么您根本不安全。
Jet/ACE 对于特定应用来说可能足够安全。
而且就成本/效益比而言,综合考虑一切,这可能是一个更好的选择。
但由于最初的问题已被提出并且对应用程序一无所知,所以我绝对建议不要使用 Jet/ACE。
I'm a big fan of Access and Jet/ACE, but for sensitive data, Jet/ACE is not a good choice, as it can't really be secured like a server database engine can.
That said, many people who think their data is sensitive and needs the highest level of security technology are just fooling themselves.
Security is almost always as much a people problem as it is a technology problem, and even with the most secure technology, you still have to trust people in order to give them access to the data they need to do their work. Your database may be totally locked down, but if you can trust your sysadmin, you're not secure at all.
Jet/ACE may be secure enough for a particular application.
And in terms of cost/benefit ratio, it may be a better choice, taking everything into account.
But as the original question was framed and knowing nothing else about the application, I'd definitely recommend against using Jet/ACE.
连接到 Microsoft Access (*.mdb) 数据库时使用 Microsoft JET ODBC 驱动程序。这是支持嵌入式数据库的一种方式。
我建议不要使用 Access,而应使用 SQLLite 或 SQL Server 紧凑版。使用其中任何一个,您都将获得对 SQL 语法更强大的支持,并且很可能会提高性能。
The Microsoft JET ODBC Drivers are used when connecting to a Microsoft Access (*.mdb) Database. It's one way of supporting an embedded database.
I would recommend against using Access in favor of something like SQLLite or SQL Server Compact Edition. Using either of those you'll get more robust support for SQL syntax and, more than likely, improved performance.
Microsoft JET 数据库是Microsoft Access 使用的技术。我强烈建议使用 SQL Server Express 之类的工具(在 Microsoft 免费下载 - http:// www.microsoft.com/express/sql/default.aspx)。 SQL Server Express 有一些限制(最大同时连接数、2 GB 数据库大小等),但我认为它比 JET 好很多。另外,如果您的应用程序被大量使用并且需要一个“严肃的”数据库,您可以随时升级到 SQL Server 的常规版本。
Microsoft JET database is the technology that Microsoft Access uses. I would strongly recommend using something like SQL Server Express (free download at Microsoft - http://www.microsoft.com/express/sql/default.aspx) instead. SQL Server Express has a few limitations (max. number of simultaneous connections, 2 GB database size, etc.) but I think it's a lot better than JET. Also, if your application gets a lot of use and needs a 'serious' database you can always upgrade to the regular version of SQL Server.
MS Access 应用程序的默认引擎被称为通用术语“Access 数据库引擎”。
“Jet”特指 Access2007 之前的数据库访问引擎版本。无论如何,Access2007 的版本特定术语是“ACE”。
我不会建议是否使用 Access 数据库引擎,只是说它适合用户很少的小型独立应用程序。
The default engine for the MS Access application is know by the generic term 'Access Database Engine'.
'Jet' refers specifically to versions of the Database Access Engine prior to Access2007. For what it is worth, the version-specific term for Access2007 is 'ACE'.
I'm not going to advise as to whether it's advisable to use the Access Database Engine other than to say that it's good for small standalone apps with very few users.
我会远离杰特。与几乎所有其他数据库相比,它都存在性能问题。此外,它使用非标准版本的 SQL (Jet-SQL),这意味着一旦您决定停止用锤子敲自己的头,您将很难将应用程序移植到其他数据库。确实,即使是 T-SQL 也不是跨数据库通用的,但 Jet-SQL 确实不同。
另外,它是 Access,这意味着每次您提到它时,您的同事都会嘲笑您。这可能不完全公平,但它会发生。
I would stay away from Jet. It has performance issues compared with pretty much every other database out there. Also, it uses a non-standard version of SQL (Jet-SQL), which means you'd have a difficult time porting your application to a different database once you decide to stop hitting yourself in the head with a hammer. It's true that even T-SQL isn't universal across databases, but Jet-SQL is really different.
Plus it's Access, which means your peers will laugh at you every time you mention it. This might not be completely fair, but it will happen.