【发布时间】:2013-01-10 17:36:36
【问题描述】:
我被要求维护一个使用 SQL Server 数据库的 ASP 经典网站。
我以备份的形式获得了数据库。我在本地计算机上恢复了数据库并为其创建了DSN connection。但是,当我尝试加载我的站点时,该站点所依赖的stored procedures 给出了一个错误,即执行权限被拒绝。
有问题的存储过程有一个名为UserSecure 的用户显示为唯一拥有EXECUTE 权限的人,我已尝试使用该名称创建用户但不起作用,即使我可以手动登录到 SQL Server使用 UserSecure 的 Management Studio 尝试使用这些凭据从网页连接会给出 login failed error。
如果我运行sp_helplogins,我的 Windows 凭据显示为数据库的所有者,实际上我可以从 SSMS 中执行,但不能从 ADO 连接执行。
另一方面,webpage 中的连接是这样编码的,我不熟悉连接的应用程序部分。也许这是问题的一部分?我尝试使用DSN 和DSN-less 连接,可以连接但不能对数据库执行任何操作?
【问题讨论】:
-
你能提供更多的上下文吗?什么版本的 SQL?涉及多少个数据库?您的存储过程或视图中是否有任何跨数据库引用?
-
你是在数据库安全下创建用户还是在服务器安全下创建登录?
-
我最终做的不是专注于一个过程,而是查看整个数据库的权限并将 EXECUTE 授予来宾用户。这一切都在本地 IIS 上进行测试,因此安全性不是问题。
标签: sql sql-server database asp-classic ado