仅限用户通过应用程序层限制数据操作以实现多数据库解决方案

时间:2009-10-08 13:21:02

标签: stored-procedures multi-database

我开始开发一种必须符合SQL Server(2005及以上版本),Oracle(10r2及以上版本)和Sybase(12.5及以上版本)的新软件。我正计划使用存储过程实现数据库抽象,因此我可以使用更多的性能代码来实现每种情况的数据库特定方法。我计划拒绝访问所有表信息,包括数据读取,并允许仅通过存储过程访问信息。问题是,当我对将用于INSERT的存储过程授予EXECUTE权限时,如果用户通过SSMS或SQL Plus连接到数据库,他将能够通过直接调用该过程来添加数据,我会喜欢这样做。我希望通过存储过程的数据操作只能通过我的应用程序执行。我可以为我的应用程序和用户分别登录,但我希望我的应用程序可以通过NT身份验证使用用户的凭据连接到数据库。有没有办法做到这一点?
有没有更好的方法来实现我想要实现的目标?
感谢

1 个答案:

答案 0 :(得分:0)

您可以在应用程序中嵌入UUID,并让存储过程在将数据写入数据库之前需要它。