拒绝了对对象 '表名(数据库 '数据库名',所有者 'dbo')的 SELECT 权限。

错误:

System.Data.SqlClient.SqlException: 拒绝了对对象 'Dentists'(数据库 'dentists',所有者 'dbo')的 SELECT 权限。
    at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream)
    at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior)
    at System.Data.SqlClient.SqlCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)

 

解决方案:

在数据库里相应的用户权限中,把db_denydatareader的复选框的勾去掉。很多初学者,总认为在数据库权限中选的越多,权限越大。其实这是错误的!就像人权一样,每个国民都有自己的权利,同时也会有对国民行为的限制。db_denydatareader是拒绝访问。

引用通告: 我要引用此文章
Tags:
相关日志:
评论: 1 | 引用: 0 | 查看次数:
回复 哈哈 [2011-9-9 上午 10:14:04]
我也勾上了,呵呵
发表评论
昵 称:
邮 箱:
主 页:
验证码:
内 容: