Stored procedures 对于多数据库解决方案,仅通过应用程序层限制用户对数据的操作

Stored procedures 对于多数据库解决方案,仅通过应用程序层限制用户对数据的操作,stored-procedures,multi-database,Stored Procedures,Multi Database,我正在开始开发一个新软件,该软件必须符合SQL Server 2005及以上版本、Oracle 10r2及以上版本和Sybase 12.5及以上版本。我正计划使用存储过程实现数据库抽象,这样我就可以针对每种情况使用更具性能的代码实现特定于数据库的方法。我计划拒绝访问所有表信息,包括数据读取,并且只允许通过存储过程访问信息。问题是,当我授予将用于插入的存储过程的EXECUTE权限时,如果用户通过SSMS或SQL Plus连接到数据库,他将能够通过直接调用该过程来添加数据,我希望避免这种情况。我希望

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

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

这是我可能的解决方案。我写这个问题是为了看看是否有其他的方法,或者我想做的是正确的,或者是一个最佳实践。谢谢你的回答