【问题标题】:Select permission was denied on object对象的选择权限被拒绝
【发布时间】:2026-01-21 15:50:01
【问题描述】:

好吧,我正在使用 Cold Fusion 创建一个应用程序网站,每次我在浏览器中调试我的项目时都会收到此错误:

执行数据库查询时出错。

[Macromedia][SQLServer JDBC Driver][SQLServer] SELECT 权限在对象“用户”、数据库“酒店”、模式“dbo”上被拒绝

我正在使用一个名为 CFLogin 的用户,我通过 SQL Server 中的此命令授予他选择权限:

USE hotel
GO
GRANT SELECT ON dbo.users TO CFLogin

我还执行了以下存储过程来为我的用户分配角色:

EXEC sp_addrolemember 'db_owner',CFLogin
EXEC sp_addrolemember 'db_datareader',CFLogin
EXEC sp_addrolemember 'db_accessadmin',CFLogin

但它总是导致相同的消息:Select permission was denied on object... 我什至重新启动了服务,但似乎没有任何工作。

我做错了什么?

问候!

【问题讨论】:

  • 看来您是在不同的登录名下连接的 - 而不是 CFLogin
  • 尝试选择 user_ID(),User_name(),CURRENT_USER
  • 我已与 CFLogin 连接,这是选择工作,但不是我的选择指向用户表

标签: sql-server select permissions


【解决方案1】:

我在运行 IIS 7 的 Windows 2008 服务器中使用启用了 Coldfusion 的网站时也遇到了类似的问题。执行以下查询帮助我解决了这个问题,

使用数据库名称 将 dbo.TABLENAME 上的选择授予公共;

从 sql 提示符执行上述查询帮助我解决了这个问题。将 DATABASENAMETABLENAME 替换为错误显示的 sql server 数据库和表名。

【讨论】:

  • 您可以只授予用户权限,而不是授予所有用户吗?还是我误解了这个命令?
  • 我们的 DBA 不允许这样做。还有其他线索吗?