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